Chuenhung的个人网站

chuenhung.github.io

希尔排序

希尔排序是简单插入排序的改进,它是一种不稳定排序算法。由D.L.Shell在1959年提出。希尔排序实质上是一种分组插入方法。

算法描述

1、对于n个待排序的数列,取一个小于n的整数gap(称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中。
2、然后对各组内的元素进行直接插入排序,这一趟排序完成之后,每一个组的元素都是有序的。
3、接下来减小gap的值,并重复执行上述的分组和排序。
4、重复这样的操作,当gap=1时,整个数列就是有序的。

阅读全文 »

快速排序

快速排序(Quick Sort)由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序也是分治法的经典实现,是不稳定的算法。

阅读全文 »

归并排序

归并排序(Merge Sort)是建立在归并操作上的一种有效且稳定的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。基本思路是将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。由约翰·冯·诺伊曼在1945年提出。

阅读全文 »

堆排序

堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。首先以线性时间建立一个大顶堆,然后通过执行N-1次删除堆顶元素(deleteMax)操作来实现元素排序。

阅读全文 »
0%