插入排序

来源:互联网 发布:java连接zookeeper报错 编辑:程序博客网 时间:2024/06/07 03:19

看过算法导论的人都明白,简单一个例子就能说明什么是插入排序。

将一堆顺序打乱的扑克牌堆叠到一起,从上而下一张一张把扑克牌拿到手里。在拿到手里的过程中,按照一定的顺序排列(从左到右,从大到小或者从小到大)。当所有牌被拿完的时候,插入排序就完成了。就是这么简单。

伪代码:

for j = 2 to A.length    key = A[j]    i = j - 1    while i > 0 and A[i] > key        A[i + 1] = A[i]        i = i - 1    A[i + 1] = key
解释一下这个伪代码。

A代表一个乱序数组

length是这个数组的长度

for循环遍历要插入的数组

while循环将要插入的数和其前面已经拍好序的数进行比较,找到合适的插入位置

总体来说这种算法容易理解,在生活的各个方面也会使用到。比如说我们一般人钱包里的钱币的面值排序(只装100大钞的土豪不算),还有小学生按照高低个排队,课堂按照高低个排座位等等。生活中处处都充满了插入排序。


0 0