冒泡排序的中心思想:
将数组中的相邻元素进行两两比较,若逆序则交换。
当从前向后依次扫描比较之后,最小的数会被放到最后一个位置,这个该过程称为一趟排序。
第二趟扫描只需从第二个数据元素开始,到倒数第二个数结束
重复进行
#include <iostream>
#define N 10
using namespace std;
int main()
{
int arr[N]={2,5,1,3,4,10,9,8,7,6};
int i,j,k;
int temp;
cout<<"排序前:"<<endl;
for(i=0;i<N;i++)
cout<<arr[i]<<" ";
cout<<endl;
for(i=1;i<N;i++)/*外循环控制排序轮数*/
{
for(j=0;j<=N-i;j++)/*每轮排序对相邻的两个数进行比较*/
{
if(arr[j]<arr[j+1])/*逆序就交换*/
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
cout<<"第"<<i<<"轮排序结果:";
for(k=0;k<N;k++)
cout<<arr[k]<<" ";
cout<<endl;
}
cout<<"排序后:"<<endl;
for(i=0;i<N;i++)
cout<<arr[i]<<" ";
return 0;
}
