当前位置:   article > 正文

双向冒泡法,可以只求最大最小值

双向冒泡法,可以只求最大最小值
  1. int BiBubbleSort(int Arr[],int n,int maxnum){
  2. int left=0,right=n-1;
  3. int i;
  4. bool notDone= true;
  5. int temp;
  6. if(n<2)return -1;
  7. while(left<=right&&notDone){
  8. notDone= false; //设置未发生交换标志
  9. for(i=left;i<right;i++){
  10. if(Arr[i]>Arr[i+1]){
  11. //swap(Arr[i],Arr[i+1]);
  12. temp=Arr[i];
  13. Arr[i]=Arr[i+1];
  14. Arr[i+1]=temp;
  15. notDone= true;//
  16. }
  17. }
  18. right--;//右边界增加一个最大值
  19. for(i=right-1;i>=left;i--){
  20. if(Arr[i]>Arr[i+1]){
  21. //swap(Arr[i],Arr[i+1]);
  22. temp=Arr[i];
  23. Arr[i]=Arr[i+1];
  24. Arr[i+1]=temp;
  25. notDone= true;
  26. }
  27. }
  28. left++;//左边界增加一个最小值
  29. if(maxnum>0){maxnum--;if(maxnum==0)return 0;
  30. }
  31. }
  32. return 1;//ok
  33. }

 运行一次获取最大最小值

全部排序运行

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

闽ICP备14008679号