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
}
运行一次获取最大最小值
全部排序运行