【Aha】算法篇之排序(上)

一大波数正在靠近-----排序

  • 最快最简单的排序-----桶排序(浪费空间)
  • 邻居好说话-----冒泡排序​​​​​​​
  1. 桶排序
#include<stdio.h>
int main()
{
	int a[11],i,j,t;
	for(i=0;i<11;i++){
		a[i]=0;//初始化为0 
	}
	for(i=1;i<=5;i++){//循环读入5个数 
		scanf("%d",&t);//把每个数读到变量t中 
		a[t]++;//进行计数 
	}
	for(i=0;i<11;i++){//依次判断a[0]--a[10] 
		for(j=1;j<=a[i];j++){//出现几次就打印几次 
			printf("%d",i);
		}
	}
}

  2,冒泡排序

#include<stdio.h>
struct student
{
	char name[21];
	int score;
} ;//创建了一个结构体用来存储姓名和成绩 
 int main()
 {
 	struct student a[100],t;
 	int i,j,n;
 	scanf("%d",&n);
 	for(i=1;i<=n;i++){//循环读入n个人名和成绩 
 		scanf("%s %d",a[i].name,&a[i].score);
	 }
	 for(i=1;i<=n-1;i++){//n个数排序,只用进行n-1趟 
	 	for(j=1;j<=n-i;j++){
	 		if(a[j].score<a[j+1].score){//对分数进行比较,并从高到底排序 
	 			t=a[j];a[j]=a[j+1];a[j+1]=t;
			 }
		 }
	 }
	 for(i=1;i<=n;i++){//输出人名 
	 	printf("%s\n",a[i].name);
	 }
 }

猜你喜欢

转载自blog.csdn.net/qq_42735631/article/details/81316116