随笔分类 -  十大经典排序算法

摘要:1 基本思想 1)初始化堆:将数列a[1...n]构造成最大堆。 2)交换数据:将a[1]和a[n]交换,使a[n]是a[1...n]中的最大值;然后将a[1...n-1]重新调整为最大堆。 接着,将a[1]和a[n-1]交换,使a[n-1]是a[1...n-1]中的最大值;然后将a[1...n-2 阅读全文
posted @ 2019-08-06 20:40 糖醋小瓶子 阅读(153) 评论(0) 推荐(0)
摘要:1 基本思想 1)设待排序元素序列有n个元素,首先取一个整数increment(小于n)作为间隔将全部元素分为increment个子序列,所有距离为increment的元素放在同一个子序列中,在每一个子序列中分别实行直接插入排序。然后缩小间隔increment,重复上述子序列划分和排序工作。直到最后 阅读全文
posted @ 2019-07-12 10:31 糖醋小瓶子 阅读(224) 评论(0) 推荐(0)
摘要:1 算法步骤 1)将待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。 2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。) 2 动画演示 3 参考代码 阅读全文
posted @ 2019-04-03 08:58 糖醋小瓶子 阅读(118) 评论(0) 推荐(0)
摘要:1 算法步骤 1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置; 2)再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾; 3)重复第二步,直到所有元素均排序完毕。 2 动画演示 3 参考代码 阅读全文
posted @ 2019-03-28 09:54 糖醋小瓶子 阅读(124) 评论(0) 推荐(0)
摘要:在github上看到了一个非常好的项目,用动画来解释十大排序算法,非常便于理解,准备边学习边记录下来,便于日后复习。附上原文链接:https://github.com/MisterBooo/Article 1 算法步骤 设数组长度为N,需要按照从小到大排列 1)比较相邻的前后二个数据,如果前面数据大 阅读全文
posted @ 2019-03-27 20:01 糖醋小瓶子 阅读(162) 评论(0) 推荐(0)