【Devc++】排序算法1 冒泡排序

  • Post author:
  • Post category:其他



冒泡排序是最常见的排序算法之一


代码:

#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 版权协议,转载请附上原文出处链接和本声明。