欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

插入排序的疑问

发布时间:2025/6/15 编程问答 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 插入排序的疑问 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这个问题总是忘记,所以记录一下。

void insertSort(int a[],int n) {int i,j,pos;for(i=1;i<n;i++){pos=a[i];for(j=i-1;j>=0&&a[j]>pos;j--)a[j+1]=a[j];a[j+1]=pos;} }疑问:为什么需要pos这个变量,i在整个内循环不是一直都没有变过吗?

答案很简单,i是没有变过,但a[i]在插入排序的前移的过程中被覆盖了,所以要保存a[i]的值.其中在a[j+1]=a[j],这个前移等式中,a[j]是要插入的地方,但当此行结束后,for循环中还执行了j--,所以后面是a[j+1]=pos,而不是a[j]=pos.

总结

以上是生活随笔为你收集整理的插入排序的疑问的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。