天天看点

排序算法(Sorting)——冒泡排序

冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。

核心为两个嵌套循环。

简单的给出一组数据,从小到大将他们排序。

#include<iostream>
using namespace std;
int const M=1001;
int a[M];

int main()
{
	int N,t;
	cin>>N;
	for(int i=1;i<=N;i++)
		cin>>a[i];
	for(int i=1;i<N;i++)
		for(int j=1;j<N;j++)
		{
			if(a[j+1]<a[j])
			{
				t=a[j+1];
				a[j+1]=a[j];
				a[j]=t;
			}
		}
	for(int i=1;i<=N;i++)
		cout<<a[i]<<" ";
	return 0;
}
           

现在有某几个学生的考试成绩,要求从大到小排序,还要带上姓名(或者学号等)。

#include<iostream>
#define M 1001
using namespace std;

struct student
{
	char name[100];
	double score;
};

int main()
{
	struct student a[100],t;
	int N;
	cin>>N;
	for(int i=1;i<=N;i++)
	{
		cin>>a[i].name ;
		cin>>a[i].score;
	}
	for(int i=1;i<N;i++)
		for(int j=1;j<N;j++)
		{
			if(a[j+1].score <a[j].score)
			{
				
				t=a[j+1];
				a[j+1] =a[j];
				a[j]=t;
			}
		}
	for(int i=1;i<=N;i++)
	{
		cout<<a[i].name <<" "<<a[i].score<<endl;	
	}
	return 0;	
}
           

继续阅读