这里写自定义目录标题
冒泡排序的原理:相邻的元素两两比较,大的交换到后面,第一趟得到最大的元素在最后,如此重复,n个元素要比较n-1趟。设置标志位flag,避免已经排好了,还在傻乎乎的“冒泡”。
上代码:
#include<iostream>
using namespace std;
//冒泡排序
void bubbleSort(int a[],int n)
{
for(int i=0;i<n-1;i++)
{
int flag=0; //设置标志位
for(int j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1]) // 元素之间交换,小的在前
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;
}
}
if(flag==0) //没有交换过,则已经有序
break;
}
}
//打印输出数组中的元素
void print(int a[],int n)
{
for(int i=0;i<n;i++)
{
cout<<a[i] <<" "; //不换行,元素之间有空格
}
cout<<endl; //所有元素输出完再换行
}
int main()
{
int a[5]={2,3,6,4,1};
cout<<"排序之前:"<<endl;
print(a,5);
bubbleSort(a,5);
cout<<"排序之后:"<<endl;
print(a,5);
return 0;
}
这是运行结果: