当前位置:   article > 正文

C / C++算法学习笔记(6)-插入法_插入法交换次数

插入法交换次数

原始地址:C / C++算法学习笔记(6)插入法

 

插入法:

插入法较为复杂,它的基本工作原理是抽出牌,在前面的牌中寻找相应的位置插入,然后继续下一张。

 

  1. #include <iostream.h>
  2. void InsertSort(int* pData,int Count)
  3. {
  4. int iTemp;
  5. int iPos;
  6. for(int i=1;i<Count;i++)
  7. {
  8. iTemp = pData[i];
  9. iPos = i-1;
  10. while((iPos>=0) && (iTemp<pData[iPos]))
  11. {
  12. pData[iPos+1] = pData[iPos];
  13. iPos--;
  14. }
  15. pData[iPos+1] = iTemp;
  16. }
  17. }
  18. void main()
  19. {
  20. int data[] = {10,9,8,7,6,5,4};
  21. InsertSort(data,7);
  22. for (int i=0;i<7;i++)
  23. cout<<data[i]<<" ";
  24. cout<<"/n";
  25. }


i=1时:

                      iTemp=pData[1]=9

                      ipos=1-1=0;

                      ipos=0>=0 && iTemp=9<pData[0]=10;

                      pData[1]=pData[0]=10;

                      ipos--=0-1=-1;

                      pData[0]=9;   9-10-8-7-6-5-4

i=2时:

                      iTemp=pData[2]=8

                      ipos=2-1=1;

                      ipos=1>=0 && iTemp=8<pData[1]=10;

                      pData[2]=pData[1]=10;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/764223
推荐阅读
相关标签
  

闽ICP备14008679号