十大排序算法的比较
排序算法的稳定性
排序前如果 a==b,a在b的前面,排序后a仍在b的前面,则称该排序算法稳定,反之为不稳定。"快选堆希”四个算法是不稳定的。
冒泡排序
逻辑
共n-1次比较
代码
#include <bits/stdc++.h>
using namespace std;
int a[1100],n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=2;i<=n;i++)
{
for(int j=1;j<=n-1;j++)
{
if(a[j+1]<a[j])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
优化
#include <bits/stdc++.h>
using namespace std;
int a[110];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int flag=1;
for(int i=1;i<=n-1&&flag==1;i++)
{
flag=0;
for(int j=0;j<=n-2;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
flag=1;
}
}
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}