1.冒泡排序
2.快速排序
3.选择排序
4.插入排序
5.希尔排序
6.桶排序
7.归并排序
8.堆排序
1.冒泡排序:
2.快速排序:
快排的核心是划分,以当前区间的第一个为比较元素,从后向前找到比它小的,将小的放到比较元素的位置;再从前往后找到比它大的,交换;再对划分后的两部分分别递归调用,直到low>=high为止。通过一次划分将序列分成两部分,左边的部分全部小于基准值,右边的部分大于基准值。(升序)
3.选择排序:选择排序是从一个数组中选出最小的与第一个位置交换,然后再从剩下的中选出最小的,与第二个位置的数交换……直到所有的都交换完毕。
4.插入排序:插入排序是从第一个开始,每次将一个数从后向前扫描,插入到前面“已排好”的序列中。直到所有的数都插入完毕。
5.希尔排序:是插入排序的变种。
6.桶排序:针对数据范围有限的序列。将每个数分到按顺序排列的有限的“桶”中,然后从头开始“打印”出桶中数量大于等于1的数字。
7.归并排序:归并排序分为两步:划分和归并。
首先将原数序列划分成两个集合;分别对这两个集合排序;最好将已排序的两个集合归并成一个序列。
8.堆排序:
若在输出堆顶的最小值之后,使得剩余n-1个元素的序列重又建成一个堆,则得到n个元素的次小值。如此反复执行,便能得到一个有序序列,这个过程称之为堆排序。
堆排序的关键在于调整函数。调整函数。
若想得到升序,则建立大顶堆,若想得到降序,则建立小顶堆。