把冒泡排序 换了一种情况实现,主要过程就是把最小的放到后面,然后将最大的放到前面,放过之后需要使用的数据减1,到最后没有数据可以排,就排序成功了。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[]={6,5,3,1,8,7,2,4};
int n=sizeof(a)/sizeof(int);
int left=0;
int right=n-1;
while(left<right)
{
for(int i=left;i<right;i++)
if(a[i]>a[i+1])
swap(a[i],a[i+1]);
right--; //后面排好了一个
for(int i=right;i>left;i--)
if(a[i-1]>a[i])
swap(a[i],a[i-1]);
left++;//前面排好了一个
}
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}