本文主要是介绍双向冒泡法,可以只求最大最小值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
int BiBubbleSort(int Arr[],int n,int maxnum){int left=0,right=n-1;int i;bool notDone= true;int temp;if(n<2)return -1;while(left<=right&¬Done){ notDone= false; //设置未发生交换标志 for(i=left;i<right;i++){if(Arr[i]>Arr[i+1]){//swap(Arr[i],Arr[i+1]);temp=Arr[i];Arr[i]=Arr[i+1];Arr[i+1]=temp;notDone= true;//}}right--;//右边界增加一个最大值for(i=right-1;i>=left;i--){if(Arr[i]>Arr[i+1]){//swap(Arr[i],Arr[i+1]);temp=Arr[i];Arr[i]=Arr[i+1];Arr[i+1]=temp;notDone= true;}}left++;//左边界增加一个最小值if(maxnum>0){maxnum--;if(maxnum==0)return 0;}}return 1;//ok
}
运行一次获取最大最小值
全部排序运行
这篇关于双向冒泡法,可以只求最大最小值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!