1.排序
内排序:在排序过程中,所有元素调到内存中进行的排序,称为内排序。
外排序:在数据量大的情况下,只能分块排序,但块与块间不能保证有序。外排序用读/写外存的次数来衡量其效率。
内排序有可以分为以下几类:
(1)、插入排序:直接插入排序、二分法插入排序、希尔排序。
(2)、选择排序:简单选择排序、堆排序。
(3)、交换排序:冒泡排序、快速排序。
(4)、归并排序
(5)、基数排序
9种排序之间的关系:
①直接插入排序:
1、基本思想:从前往后取数,然后从那个数开始从后往前跟每个数作比较
2、实例
3、算法
②二分法插入排序:
1、基本思想:从前往后取数,然后从那个数开始二分查找中间数与中间数作比较,然后重复二分法查找
2、实例
3、算法
③希尔排序:
1、基本思想:将数据分成长度除2组,每组之间进行比较,再将长度分为上一组除2组,以此类推
2、实例
3、算法
④简单选择排序:
1、基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
2、实例
3、算法
⑤堆排序:
1、基本思想:初始时把要排序的数的序列看作是一棵顺序存储的二叉树,调整它们的存储序,使之成为一个 堆,这时堆的根节点的数最大。然后将根节点与堆的最后一个节点交换。然后对前面(n-1)个数重新调整使之成为堆。依此类推,直到只有两个节点的堆,并对 它们作交换,最后得到有n个节点的有序序列。
2、实例
3、算法
⑥冒泡排序:
1、基本思想:比较相邻的元素。如果第一个比第二个大,就交换他们两个
2、实例
3、算法
⑦快速排序:
1、基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,然后左边都是小于基准数的数,右边都是大于基准数的数,接下来就是将这个数组,按照基准数分为左右两个数组,分别再重复之前的方法来排序
2、实例
3、算法
⑧归并排序:
1、基本思想:先两个数比较排序,再四个数比较排序,再八个数比较排序,以此类推
2、实例
3、算法
⑨基数排序:
1、基本思想:比较个位并排序,比较十位并排序,比较百位并排序,以此类推
2、实例
3、算法