排序问题

2017-09-07  本文已影响0人  其中一个cc

1.冒泡排序

2.快速排序

3.选择排序

4.插入排序

5.希尔排序

6.桶排序

7.归并排序

8.堆排序

1.冒泡排序:

2.快速排序:

快排的核心是划分,以当前区间的第一个为比较元素,从后向前找到比它小的,将小的放到比较元素的位置;再从前往后找到比它大的,交换;再对划分后的两部分分别递归调用,直到low>=high为止。通过一次划分将序列分成两部分,左边的部分全部小于基准值,右边的部分大于基准值。(升序)

3.选择排序:选择排序是从一个数组中选出最小的与第一个位置交换,然后再从剩下的中选出最小的,与第二个位置的数交换……直到所有的都交换完毕。

4.插入排序:插入排序是从第一个开始,每次将一个数从后向前扫描,插入到前面“已排好”的序列中。直到所有的数都插入完毕。

5.希尔排序:是插入排序的变种。

6.桶排序:针对数据范围有限的序列。将每个数分到按顺序排列的有限的“桶”中,然后从头开始“打印”出桶中数量大于等于1的数字。

7.归并排序:归并排序分为两步:划分和归并。

首先将原数序列划分成两个集合;分别对这两个集合排序;最好将已排序的两个集合归并成一个序列。

8.堆排序:

若在输出堆顶的最小值之后,使得剩余n-1个元素的序列重又建成一个堆,则得到n个元素的次小值。如此反复执行,便能得到一个有序序列,这个过程称之为堆排序

堆排序的关键在于调整函数。调整函数。

若想得到升序,则建立大顶堆,若想得到降序,则建立小顶堆

上一篇 下一篇

猜你喜欢

热点阅读