排序算法总结:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目...
分类:
编程语言 时间:
2016-01-22 17:31:28
阅读次数:
260
附:关于这个主题,网上好的文章已经数不胜数,本篇是整合后的文章。正文:一、概述排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。本文所指八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(...
分类:
编程语言 时间:
2016-01-11 22:09:20
阅读次数:
197
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内...
分类:
编程语言 时间:
2015-12-14 18:54:42
阅读次数:
881
1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入...
分类:
编程语言 时间:
2015-10-12 12:17:46
阅读次数:
221
基数排序的性能排序类别排序方法时间复杂度空间复杂度稳定性复杂性平均情况最坏情况最好情况基数排序基数排序O(d(n+r))O(d(n+r))O(d(n+r))O(n+r)稳定较复杂时间复杂度:假设在基数排序中,r为基数,d为位数。则基数排序的时间复杂度为O(d(n+r))。可以看出,基数排序的效率和初...
分类:
编程语言 时间:
2015-10-04 22:12:26
阅读次数:
326
基本思想 归并排序简单的说就是递归后合并,该算法是分治法(Divide and Conquer)的一个典型应用。 基本思想为:将待排序序列R[0...n-1]看成是n个长度为1的有序序列,两两有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,如此反复进行下去,最后得到一个长度.....
分类:
编程语言 时间:
2015-10-04 20:54:07
阅读次数:
272
基本思想 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。性能 时间复杂度:平均情况下的时间复杂度为O(nlogn)。最坏情况下时间复杂度为O(n2)。 空间复杂度:除...
分类:
编程语言 时间:
2015-10-04 18:23:29
阅读次数:
238
基本思想 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。稳定性 由于多次插入排序,我们知道一次插入排序是稳定的,不会改变相.....
分类:
编程语言 时间:
2015-10-04 17:12:40
阅读次数:
309
基本思想 直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。内层循环为待比较数值确定其最终位置。直接插入排序是将.....
分类:
编程语言 时间:
2015-10-04 15:50:31
阅读次数:
237