像这种插入排序,如果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了??
收起
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
支付金额 15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意 《付费问题酬金结算规则》
如果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循环,按照我这个步骤,把每一步数组的变化写下来,有助于发现排序的方式
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!