冒泡排序是最常见的排序算法之一
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long g;
cin>>g;
long long n[g+1];
for(long long i=1;i<=g;i++)
cin>>n[i];
for(long long i=g;i>=1;i--)
{
for(long long j=1;j<i;j++)
{
if(n[j]>n[j+1])
{
swap(n[j],n[j+1]);
}
}
}
for(long long i=1;i<=g;i++)
cout<<n[i]<<" ";
return 0;
}
优化版:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long g;
bool ok;
cin>>g;
long long n[g+1];
for(long long i=1;i<=g;i++)
cin>>n[i];
for(long long i=g;i>=1;i--)
{
ok=1;
for(long long j=1;j<i;j++)
{
if(n[j]>n[j+1])
{
swap(n[j],n[j+1]);
ok=0;
}
}
if(ok)break;
}
for(long long i=1;i<=g;i++)
cout<<n[i]<<" ";
return 0;
}
优化版主要利用bool变量,减少循环次数
版权声明:本文为Guo_Clark原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。