一、冒泡排序
第一趟排序将一个无序数组从索引为0的位置依次比较相邻位置的元素,如果索引在前的元素大于索引在后的元素,那么交换位置,把大的放在后面,这样走完一趟,最大的元素放在里最后面。
第二趟形式一样,就是不用和最后一个数进行比较了,因为最后一个数已经在第一趟中比较出来是最大的了,所以后面每一趟都在上一趟的基础上少比较一次。
冒泡排序一共走(数组长度-1)趟
每一趟走(数组长度-1-第几趟)次
二、快速排序
1.第一次排序
会先把数组中的一个数当作基准数,一般会把数组中最左边的数当作基准数。然后从两边进行检索。先从右边检索比基准数小的。再从左边检索比基准数大的。如果检索到了,就停下,然后交换这两个元素。然后再交换的索引位置继续检索。直到索引相遇,停止检索,把索引位置的数和基准数交换后,这样形成了基准数左边都是比基准数晓得,基准数右边都是比基准数大的。这样就完成了第一次排序
2.第二次排序
经过第一次排序之后数组变成了以基准数为界限的两部分,左边都是比基准数小的,右边都是比基准数大的。在这基础上进行第二次排序,把左右两部分依次进行如同第一次的快速排序(递归操作)
快速排序的速率远远大于冒泡排序
三、选择排序
在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
四、插入排序
每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
五、希尔算法
先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。