时间复杂度O(n^2),比较相邻两个元素大小,不符合时交换
冒泡排序法c++实现:
#include<iostream>
using namespace std;
class BubbleSort {
public:
void bubbleSort(int *A, int n)
//冒泡排序
{
int i=n,temp,j,flag;
while(i)
{
for(j=0,flag=0;j<i-1;j++)//每一轮都会将最大的放在最后,然后缩小下一轮的范围(-1)
{
if(A[j]>A[j+1])
{
temp=A[j];
A[j]=A[j+1];
A[j+1]=temp;
flag=1;
}
}
if(!flag)//如果这一轮没有发生交换,直接退出while,排序结束
break;
i--;//发生交换,范围-1,开始下一轮
}
}
};
int main()
{
int arr[]={2,4,7,9,8,6};
BubbleSort a;
a.bubbleSort(arr,6);
for(int i=0;i<6;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}