对数据交换这里有疑问

来源:3-5 希尔排序

zhanghua1068

2020-07-13 10:41

arrs[preIndex+gap]=arrs[preIndex]
preIndex-=gap
这个地方,把preIndex的值赋值给了preIndex+gap后,preIndex+gap本身的值岂不是没了
preIndex-=gap ,这里为何要做减法操作呢
写回答 关注

1回答

  • ghcg
    2020-07-13 20:13:43

    http://img2.mukewang.com/5f0c4e320001ea1a05950213.jpg

    不会丢失的,current记录了当前位置的值,while循环结束后这一段代码会把当前值赋值过去。循环中不是交换,你可以理解为循环把所有比当前值大的都后移了一位,循环结束后这一段代码会把空出来的位置赋值过去

Java数据结构与排序算法快速入门

入门数据结构和排序算法,一套课程,足矣!

2667 学习 · 11 问题

查看课程

相似问题