数据结构与算法
继学先生
尝尽世间白酒,修得人间赤心。
展开
-
排序算法的稳定性研究
算法的稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。排序算法是否为稳定的是由具体算法决定的,不稳定算法和稳定算法在一定条件下可以相互转换。 稳定的排序算法:基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序不稳原创 2015-04-03 11:41:35 · 393 阅读 · 0 评论 -
Java算法实现之桶排序
参考《算法导论》8.4 桶排序,使用到Java的一些工具类:LinkedList作为桶的数据结构,Collections.sort()对桶进行排序。 总结桶排序主要步骤: 1、初始化桶:桶的数量,桶的数据结构; 2、将元素放入对应的桶中; 3、对每个桶进行排序;代码演示:原创 2017-11-22 12:51:56 · 551 阅读 · 0 评论 -
Java数据结构实现之栈
很简单,看了下Java的Stack源码,是继承Vector,通过一个计数变量来判断栈是否为空或者满栈。 代码演示:原创 2017-11-20 17:01:30 · 229 阅读 · 0 评论 -
Java数据结构实现之循环队列
队列也很简单,需要注意的是判断队列上溢和下溢的情况,以及队列指针循环的情况。 代码演示:原创 2017-11-21 12:53:29 · 422 阅读 · 0 评论 -
Java数据结构实现之链表
本链表数据结构的实现参考第三版《算法导论》10.2 链表的伪代码。代码演示:原创 2017-11-18 11:01:24 · 413 阅读 · 0 评论 -
Java算法实现之二分查找
本算法实现的功能:如果待查找数组中存在唯一关键字元素,则检索成功,返回检索元素在数组中的下标;如果待查找数组中存在多个关键字元素,则检索成功,返回多个相同关键字元素中靠近中间元素的下标。代码演示:原创 2017-11-17 11:04:45 · 188 阅读 · 0 评论 -
Java算法实现之堆排序
本堆排序算法参考第三版《算法导论》中,第六章 堆排序算法的伪代码。 辅助理解建议直接看算法导论,讲的很系统也详细易懂。代码演示:原创 2017-11-11 09:43:08 · 188 阅读 · 0 评论 -
Java算法实现之KMP算法
本KMP算法参考第三版《算法导论》中,2.32.4 Knuth-Morris-Pratt算法的伪代码。 辅助理解参考:https://www.cnblogs.com/c-cloud/p/3224788.html演示代码:原创 2017-11-10 12:47:40 · 327 阅读 · 0 评论 -
Java算法实现之归并排序
本归并排序参考第三版《算法导论》中,2.3.1分治法。演示代码: 程序运行结果: 第1次合并28 第2次合并17 第3次合并1278 第4次合并56 第5次合并34 第6次合并3456 第7次合并12345678 1,2,3,4,5,6,7,8,原创 2017-10-24 16:20:01 · 285 阅读 · 0 评论 -
Java算法实现之快速排序
算法的原理啥的就不介绍了,网上一大堆。 此代码实现的是从头遍历到尾的方式。(不是从两边向中间遍历的方式)算法实现参考文章 1、:http://blog.csdn.net/v_JULY_v/article/details/6211155 2、:http://blog.csdn.net/v_JULY_v/article/details/6116297 推荐一个动画演示排序算法的网站:http:/原创 2017-10-21 14:59:30 · 273 阅读 · 0 评论 -
Java算法实现之最大子数组
算法导论里的方法比较复杂,参考了很多网上的算法,Mark下最简单快速的方法;代码演示:原创 2017-11-23 15:11:10 · 356 阅读 · 0 评论