插入排序:每一步将一个待排序的数据插入到前面已经排好序的有序序列中,直到插完所有元素为止。
时间复杂度:平均时间复杂度是 O(n^2)。
算法步骤: a[5]={3,7,1,8,5}
1)将待排序序列第一个元素看成有序序列,将其他元素当成待排序序列;
3 | 7,1,8,5 | |
有序序列 | 待排序序列 |
2)取出待排序序列第一个元素[7],与有序序列的元素[3]从后向前扫描比较。如果有序序列中的元素[3]大于该待排元素,则将有序元素[3]移到下一位置(即待排元素[7]位置);
此处3<7则不移动;
3,7 | 1,8,5 |
有序序列 | 待排序序列 |
3)接着取出待排序列中的元素[1],与有序序