冒泡排序:它比较表中的相邻元素,如果它们是逆序的话,就交换它们的位置。重复多次以后,最终,最大的元素就"沉到"列表的最后一个位置。第二遍操作又将第二大的元素沉下去。这样一直做,直到 n-1 遍后,该列表就排好序了。
动图展示
#include<bits/stdc++.h>
using namespace std;
int n,a[10002];
int main()
{
cin>>n; //输入待排序个数
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n-1;i++)//一共比较n-1趟,每趟都会将一个数放在后面正确的位置上
{
for(int j=0;j<n-1-i;j++)//从第0个数依次与相邻数比较直到未排序的最后一个数
if(a[j+1]<a[j])
swap(a[j+1],a[j]);
}
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
}
- 时间复杂度:O(n^2)
- 空间复杂度:O(1)