排序目前先记录如下八中排序方法:
排序名称 | 算法描述 | 联想记忆 |
插入排序 | 具体算法描述如下: 1、从第一个元素开始,该元素可以认为已经被排序。 2、取出下一个元素,在已经排序的元素序列中从后向前扫描。 3、如果该元素(已排序)大于新元素,则该元素移到下一位置。 4、重复步骤3,直到找到已排序的元素小于或者等于新元素的位置。 5、将新元素插入到该位置中。 6、重复步骤2. 通过3、4两个步骤,查找新元素位置的同时进行后移记录,这样就省去了一次循环后移记录的嵌套循环。 |
|
希尔排序 | 基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组,所有距离为d1的倍数记录放在同一个组中。先在各组内进行直接插入排序;然后取第二个增量d2<d1 重复上述的分组和排序,直至所取得增量dt=1 (dt<dt-1< ... < d2<d1),即所有的记录放在同一组中进行直接插入排序为止。 | 希尔排序也是一种插入排序。是一种加入了步长变量的插入排序。写出插入排序后稍加修改即成希尔排序。 |
冒泡排序 | 基本思想: 两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 注释:为什么成为冒泡排序,是因为如果从前面开始进行两两比较则会最先确定最后的一个关键字,如果从后面开始进行两两比较则会最先确定最前面的一个关键字,如果将开始比较的一边作为下面的话,每趟排序后确定的关键字都在上面,所以形象的称之为冒泡排序。 | 冒泡排序就是从后往前两两比较,n趟后前面有序区就有n个数据 |
快速排序 | 基本思想: 快速排序是对冒泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录进行排序,以达到整个序列有序。 注释:快速排序之所以称之为快速排序可以理解为,由于该算法是从区间两端交替向中间扫描,可以从某种形式上理解为是冒泡排序的两倍速度,所以称之为快速排序法。 |
|
选择排序 | 基本思想: 首先在未排序序列中选择最小元素,存放到排序序列的起始位置,然后,再从剩余未排序的序列中选择最小元素,存放到排序序列的起始位置。 |
|
堆排序 | 暂不涉及 | 了解即可 |
归并排序 | 归并排序指的是将两个已经排序的序列合并成一个序列的操作。归并排序具体工作的原理如下(假设序列共有n个元素): 1、将序列每相邻的两个数字进行归并操作(merge),形成floor(n/2)个序列,排序后每个序列包含两个元素。 2、将上述序列再次归并,形成floor(n/4),每个序列包含四个元素。 3、重复步骤2,直到所有的元素排序完毕。 | 了解即可 |
基数排序 | 暂不涉及 | 了解即可 |