排序—冒泡
来源:互联网 发布:excel 数据收集 编辑:程序博客网 时间:2024/05/16 12:36
二,冒泡排序
冒泡排序的基本思想是:每次比较两个相邻的元素,如果他们的顺序不满足要求就把它们的位置调换。
每一次循环都能将未比较的最小的数放到后面
例如需要将33,12,55,43,71这五个数从大到小排列
33 12 55 43 71 ——>33 12 55 43 71——>33 55 12 43 71 ——>33 55 43 12 71——>33 55 43 71 12
第一轮循环结束时就得到了这个结果,12已经到达了最后面 ,一共进行n-1(假设有n个数)趟循环就能够完成排序.
int main(){int a[100],i,j,t;printf("请输入有多少个数需要排序");scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]); //循环读入n个数到数组a中for(i=1;i<=n-1;i++) //n个数排序,只需进行n-1趟for(j=1,j<=n-i;j++){if(a[j]<a[j+1]){ //交换t=a[j+1];a[j+1]=a[j];a[j]=t;}}for(i=1;i<=n;i++){printf("%d",a[i]); //输出结果}return 0;}
问题引申:若是想输出的不是分数,而是分数对应的人,进行排名
code如下:
#include <stdio.h>struct student{char name[15];int score;}; //这里创建了一个结构体用来存储姓名和分数int main(){struct student a[11],t;int i,j,n;scanf("%d",&n); //输入总数for(i=1;i<=n;i++) scanf("%s %d",a[i].name,&a[i].score); //读入n个人的姓名和分数 //按分数从高到低排序 for(i=1;i<=n;i++) for(j=1;j<=n-i;j++) { if(a[j].score<a[j+1].score){ t=a[j+1].score; a[j+1].score=a[j].score; a[j].score=t; } }for (i=1;i<=n;i++)printf("%s\n",a[i].name); //输出人名return 0;}
阅读全文
0 0
- 排序——冒泡排序
- 排序——冒泡排序
- 排序——冒泡排序
- 排序——冒泡排序
- 排序——冒泡排序
- 排序——冒泡排序
- 内部排序—冒泡排序
- 排序算法—冒泡排序
- 冒泡—选择排序
- 排序—冒泡
- java冒泡排序——新人冒泡
- 排序方式—/冒泡排序/快速排序
- 冒泡排序——C++
- 汇编——冒泡排序
- 冒泡排序——java
- 数据结构——冒泡排序
- 冒泡排序——优化
- 冒泡排序——数据结构
- XML技术(一)
- deepmind_lab Lua for Windows 5.1.4-46---LuaForWindows.rar 的下载地址
- 初识Calcite——使用实例
- vue的计算属性的set方法--几乎不用,了解就行
- PHP中常用的函数
- 排序—冒泡
- c++crash的原因
- 动态类型语言&动态语言
- 机房收费系统之数据类型转换
- web.xml中session监听调用springmvc注入的service方法
- Linux私房菜学习-第5章首次登陆与在线求助man page
- 做产品基本素养之产品文档的完备性
- 数据结构—图之邻接表
- CentOS7安装keepalived