
排序算法
abcd1101
用过什么决定下限,基础原理决定上限。要相信积累的力量。
展开
-
【插入排序】 - 直接插入排序
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 例如,已知待排序的一组纪录是: 60,71,49,11,24,3,66 假设在排序过程中,前3个纪录已按关键码值递增的次序重新排列,构成一个有序序列: 49,60,71 将待排序纪录中的第4个纪录(即11)插入上述有序序转载 2017-03-03 23:30:18 · 265 阅读 · 0 评论 -
【插入排序】 - 希尔排序
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 1.原理: 该方法实质上是一种分组插入方法 比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比[2] 较就可能消除多个元素交换。 算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部转载 2017-03-04 17:12:31 · 274 阅读 · 0 评论 -
【选择排序】 - 简单选择排序
1.选择排序(简单选择排序,堆排序)与交换排序(冒泡排序,快速排序)的区别: 每次比较如果发现较小的元素在后面,就交换两个相邻的元素。而选择排序算法的改进在于:先并不急于调换位置,先从A[1]开始逐个检查,看哪个数最小就记下该数所在的位置P,等一躺扫描完毕,再把A[P]和A[1]对调,这时A[1]到A[10]中最小的数据就换到了最前面的位置。 选择排序每扫描一遍数组,只需要一次真正的交换,而冒转载 2017-03-04 17:29:07 · 284 阅读 · 0 评论 -
【选择排序】 - 堆排序
1.简介 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。 大根堆和小根堆:根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆,又称最小堆。根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆,又称最大堆。转载 2017-03-04 17:48:27 · 219 阅读 · 0 评论 -
【交换排序】 - 冒泡排序
1.原理 (从小到大排序)存在10个不同大小的气泡,由底至上地把较少的气泡逐步地向上升,这样经过遍历一次后,最小的气泡就会被上升到顶(下标为0),然后再从底至上地这样升,循环直至十个气泡大小有序。 在冒泡排序中,最重要的思想是两两比较,将两者较少的升上去 冒泡排序最坏情况的时间复杂度是O(n²) 2.稳定性 冒泡排序就是把小的元素往前调或者把大的元素往后调。比转载 2017-03-04 18:21:14 · 274 阅读 · 0 评论 -
【交换排序】 - 快速排序
原文地址:http://blog.youkuaiyun.com/morewindows/article/details/6684558 1.简介 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用 快速排序的时间主要耗费在划分操作上,对长度为k的区间进行划分,共需k-1次关键字的比较。 最坏情况是每次划分选取的基转载 2017-03-04 18:31:05 · 273 阅读 · 0 评论 -
八大排序算法比较
排序方法分为两大类:一类是内部排序,指的是待排序的几率存放在计算机随机存储器中进行的排序过程;另一类的外部排序,指的是排序中要对外存储器进行访问的排序过程。 内部排序是排序的基础,在内部排序中,根据排序过程中所依据的原则可以将它们分为5类:插入排序、交换排序、选择排序、归并排序和基数排序;根据排序过程的时间复杂度来分,可以分为三类:简单排序、先进排序、基数排序。 评价排序算法优劣的标准转载 2017-03-03 23:10:15 · 588 阅读 · 0 评论 -
归并排序
1.原理 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 2.稳定性 归并排序是稳定的排序.转载 2017-03-04 22:33:59 · 261 阅读 · 0 评论 -
【插入排序】 - 希尔排序
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 1.原理: 该方法实质上是一种分组插入方法 比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比[2] 较就可能消除多个元素交换。 算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部转载 2017-04-06 21:03:16 · 268 阅读 · 0 评论