思路: ---》假设按照 升序:
- 将待排序的无序序列看成两个序列(一个有序序列 (无序序列第一个值)+ 1个无序序列)
- 遍历被看成无序序列的序列(和有序序列从后往前进行比较-》比较多少次视情况而定)
2-1:如果无序的值大于有序的最后一个值,直接插入在有序最后值的后面
2-2:反之:则将有序的值往后移动一个位置,继续使用无序的值和该有序值再次比较(重 复2- 1 2-2),直到发现存在一个有序的值小于无序的值,将无序插入在其后。
PS:如果面临将有序序列从后往前整个遍历完毕,还没有确定下无序值的位置,则认为将无 序值立即插入在有序的第一个位置。
3.重复2,直到无序被遍历完毕。
(2)快速排序
思路:
- 将待排序的无序序列中的第一个元素看成基准(保存下来),用下标i记录基准开始的位置
- 从该无序序列的最后开始和基准进行比较,从j开始代表最后的一个元素
- 原则:假设按照升序排列:把比基准大的放在基准的右边,反之,则左边
- 当出现i == j的时候,人为该趟已经结束,此时i或者j的位置就是插入基准值的位置
- 如果发现处于基准的左右两边各自剩余待排序的数字个数大于1个时,重复1,2,3,4即:递归调用即可。