问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
像这种插入排序,如果a[0]里面是5,a[1]里面是2,在执行a[1]<a[0]时,把a[0]赋给了a[1],这个时候执行后面的arr[end + 1] = tem;是干什么的,这不就把5给了a[0]?a[0]和a[1]不就都是5了??
像这种插入排序,如果a[0]里面是5,a[1]里面是2,在执行a[1]<a[0]时,把a[0]赋给了a[1],这个时候执行后面的arr[end + 1] = tem;是干什么的,这不就把5给了a[0]?a[0]和a[1]不就都是5了??
如果a[0]里面是5,a[1]里面是2,
end=0;tem=arr[1]=2;进入while循环在执行a[1]<a[0]时,把a[0]=5赋给了a[1],end--,此时end=-1<0,break;跳出循环。arr[end+1]=tem;即arr[-1+1]=arr[0]=2.此时a[0]里面是2,a[1]里面是5.
然后继续for循环,按照我这个步骤,把每一步数组的变化写下来,有助于发现排序的方式