作  者:徐子珊著出版社:人民邮电出版社ISBN:9787115228376出版时间:2010-06-01版  次:1页  数:409装  帧:平装开  本:16开国内算法界著名学者、计算理论学组组长朱洪教授推荐。
  本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。
《算法设计、分析与实现从入门到精通:C、C++和Java》还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。
《算法设计、分析与实现从入门到精通:C、C++和Java》插图也精美,如Hanoi塔图等,都给《算法设计、分析与实现从入门到精通:C、C++和Java》增色很多,让读者在兴趣中学习。
此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。
这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
  38个经典范例,包括渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法、线性规划算法和计算几何等算法设计和实现技巧。
  26个国际大学生程序设计竞赛真题的详细解析及算法的应用。
  3种主流语言(C、C++和Java)实现算法范例程序。
内容简介  《算法设计、分析与实现从入门到精通:C、C++和Java》第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法和图的搜索算法。
每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。
这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。
一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。
《算法设计、分析与实现从入门到精通:C、C++和Java》第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。
  《算法设计、分析与实现从入门到精通:C、C++和Java》特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。
建议读者对照《算法设计、分析与实现从入门到精通:C、C++和Java》在计算机上自己创建项目、文件,进行录入、调试程序等操作,从中体会算法思想的精髓,体验编程成功带来的乐趣。
目录第1章集腋成裘——渐增型算法11.1算法设计与分析11.2插入排序算法41.2.1算法描述与分析41.2.2程序实现61.2.3应用——赢得舞伴301.3两个有序序列的合并算法321.3.1算法描述与分析321.3.2程序实现341.4序列的划分451.4.1算法描述与分析451.4.2程序实现461.5小结52第2章化整为零——分治算法532.1Hanoi塔问题与递归算法532.1.1算法的描述与分析532.1.2程序实现562.1.3应用——新Hanoi塔游戏592.2归并排序算法622.2.1算法描述与分析622.2.2程序实现632.2.3应用——让舞伴更开心692.3快速排序算法702.3.1算法描述与分析702.3.2程序实现722.4堆的实现792.4.1堆的概念及其创建792.4.2程序实现832.5堆排序882.5.1算法描述与分析882.5.2程序实现892.6基于二叉堆的优先队列942.6.1算法描述与分析942.6.2程序实现952.7关于排序算法1052.7.1比较型排序算法的时间复杂度1052.7.2C/C++/Java提供的排序函数(方法)1072.7.3应用——环法自行车赛1082.8小结109第3章记表备查——动态规划算法1113.1矩阵链乘法1123.1.1算法描述与分析1123.1.2程序实现1153.1.3应用——牛牛玩牌1213.2最长公共子序列1233.2.1算法描述与分析1233.2.2程序实现1263.2.3算法的应用1323.30-1背包问题1363.3.1算法描述与分析1363.3.2程序实现1383.3.3算法的应用1423.4带权有向图中任意两点间的最短路径1443.4.1算法描述与分析1
2023/9/13 5:28:44 41.66MB 算法设计 C C++和JAVA
1
从图的带权邻接矩阵A=[a(i,j)]n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);
又用同样地公式由D(1)构造出D(2);
……;
最后又用同样的公式由D(n-1)构造出矩阵D(n)。
矩阵D(n)的i行j列元素便是i号顶点到j号顶点的最短路径长度,称D(n)为图的距离矩阵,同时还可引入一个后继节点矩阵path来记录两点间的最短路径。
  采用的是松弛技术,对在i和j之间的所有其他点进行一次松弛。
所以时间复杂度为O(n^3);
2023/8/18 23:24:48 97KB floyd算法 C#
1
作者:徐子珊  本算法教材文笔顺畅,处理算法描述的两难问题有自己的特点,且具有丰富的C、C++和Java实现程序,这对读者学以致用很有帮助。
本书还有一个特点,文采甚好,如集腋成裘、化整为零、赢得舞伴等,生动形象,易于学习和理解。
本书插图也精美,如Hanoi塔图等,都给本书增色很多,让读者在兴趣中学习。
此书在应用性例题上,兼有中、英文描述题目,如环法自行车赛、牛牛玩牌、射雕英雄等例题。
这些例题来自ACM/ICPC,它们富有挑战性,可引起读者的学习兴趣。
  本书第1章~第6章按算法设计技巧分成渐增型算法、分治算法、动态规划算法、贪婪算法、回溯算法  点击此处添加图片说明和图的搜索算法。
每章针对一些经典问题给出解决问题的算法,并分析算法的时间复杂度。
这样对于初学者来说,按照算法的设计方法划分,算法思想的阐述比较集中,有利于快速入门理解算法的精髓所在。
一旦具备了算法设计的基本方法,按应用领域划分专题深入学习,读者可以结合已学的方法综合起来解决比较复杂的问题。
本书第7章的线性规划和第8章的计算几何是综合算法部分,通过学习这些内容,读者将进一步地学习更前沿的随机算法、近似算法和并行算法等现代算法设计方法和实战技巧。
  本书特色是按照算法之间逻辑关系编排学习顺序,并对每一个经典算法,都给出了完整的C/C++/Java三种主流编程语言的实现程序,是一本既能让读者清晰、轻松地理解算法思想,又能让读者编程实现算法的实用书籍。
建议读者对照本书在计算机上自己创建项目、文件,进行录入、调试程序等操作,从中体会算法思想的精髓,体验编程成功带来的乐趣。
1
用分层块搜索方法HBMA得到运动矢量,比穷尽块搜索EMBA算法时间复杂度低,matlab代码
2023/8/8 2:22:20 326KB HBMA EBMA
1
掌握贪心算法、动态规划和回溯算法的概念和基本思想,分析并掌握"0-1"背包问题的三种算法,并分析其优缺点。
1.【伪造硬币问题】给你一个装有n个硬币的袋子。
n个硬币中有一个是伪造的。
你的任务是找出这个伪造的硬币。
为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量是否相同。
试用分治法的思想写出解决问题的算法,并计算其时间复杂度。
2.【找零钱问题】一个小孩买了价值为33美分的糖,并将1美元的钱交给售货员。
售货员希望用数目最少的硬币找给小孩。
假设提供了数目有限的面值为25美分、10美分、5美分、及1美分的硬币。
给出一种找零钱的贪心算法。
1
五种内部排序算法性能比较,1.直接插入排序算法。
2.简单选择排序。
3.希尔排序。
4.归并排序。
5.快速排序。
分别对交换次数,比较次数,移动次数,时长,时间复杂度进行性能比较。
给出十万到百万级数据量的统计结果。
以c语言控制台画出的表格形式呈现。
2023/7/28 17:57:34 8KB C++ 内部排序 性能比较 算法
1
BM算法被认为是亚线性串匹配算法,它在最坏情况下找到模式所有出现的时间复杂度为O(mn),在最好情况下执行匹配找到模式所有出现的时间复杂度为O(n/m)。
2023/7/1 10:20:04 147KB BM模式匹配算法-原理(图解)
1
找最近对的分治法C语言实现时间复杂度是NlogN分治法
2023/6/29 1:05:21 8KB 找最近对的分治法 C语言实现
1
搜索可视化器我之所以建立这个项目,有几个原因:建立一个Web应用程序,巩固我对搜索算法的理解,对其进行可视化,并为其他人提供使用的工具。
输入您要搜索的值并观看运行中的算法。
现在,通过检查使用控制台来查看算法在搜索时经过哪些索引。
在下面,您可以了解我使用的算法的时间复杂性。
干杯!这些算法的时间复杂度搜索算法是在元素列表(数字,名称,任何字面意思)中搜索元素的算法。
对于此搜索可视化程序,应用程序从数字列表中搜索键值。
关于时间复杂度的另一件事:空间不影响时间复杂度。
例如,如果我有一个数组[6],则可以说时间复杂度为O(1)。
但是n=1,因而使用该逻辑,时间复杂度也是O(n)。
不要上当!线性搜寻时间复杂度最坏的情况:O(n)平均情况:O(n)最佳情况:O(1)线性搜索是最简单的搜索算法。
只需遍历数组并将每个元素与键值进行比较。
如果键值等于数组中的
2023/2/18 15:12:15 444KB JavaScript
1
1.假设表达式由单字母变量和双目四则运算算符构成,编写算法,将一个通常书写方式且书写正确的表达式转换成逆波兰式。
2.编写算法,对一棵以孩子—兄弟链表示的树统计叶子的个数。
3.编写递归算法,从大到小输出给定二叉排序树中所有关键字不小于x的数据元素。
要求你的算法的时间复杂度为O(log2n+m),其中n为排序树中所含结点数,m为输出的关键字个数。
2023/2/12 5:49:14 202KB 大连理工大学 计算机考研
1
共 45 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡