PTA插入排序

4576321

插入排序就是从头到尾开始遍历,遍历到每个元素时,就和其前面的元素比较一下,如果比前面的小,就说明不是前面里的最大的元素,就一直往前找,直到找到首个不必它大的元素,就是它的相对最终位置。

就是从头开始组装成牌堆的过程,现有第一张牌,从第二种牌开始遍历,这样就可以保证遍历到的位置的前面的元素都是有序的,之后再遇到元素,就是在前面有序牌堆里找到它的位置。

i表示新来的第几张牌,j表示这个牌之前比较到的第几张牌,需要arr[j+1]=arr[j],表示对牌堆整体进行一个扩容,最后停止时,J指向最后一位的前一位或者首位比它小的元素,前者的情况是此时新入的为最小元素,就会一直往前,到j=1了还往前,就是前一位,此时不满j>=1,就退出了。

是先j--,后有判断,所以如果是一直往前的情况,即第一种情况时,j最后是一定会越界的,但是j+1会保证其为数组的第一位

A1+2+2+3+4+6+=17

B

8

94 32 40 90 80 46 21 69

8

21 32 46 40 80 69 90 94

你可能感兴趣的:(作业思路中转站,算法,数据结构)