【排序】1.2冒泡排序
来源:互联网 发布:双截棍 知乎 编辑:程序博客网 时间:2024/06/07 23:24
冒泡排序基本思想:两两比较,若逆序则交换。
注意:n个数排序,只需要n-1趟,每趟待排序数为 n-i
实现(C):
#include<stdio.h>//冒泡排序,从大到小排序int main(){ int a[100],i,j,n,temp; scanf("%d",&n); //输入n表示有n个数 for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n-1;i++) //n-1趟 { for(j=0;j<n-1-i;j++) { if(a[j]<a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(i=0;i<n;i++) { printf("%d ",a[i]); }}
题一:huhu 5分、haha 3分、xixi 5分、hengheng 2分、gaoshou 8分,按照分数从高到底,输出名字。
思想:创建结构体存储姓名和分数;对分数进行排序;输出姓名;
实现:
#include<stdio.h>struct student{ char name[21]; int score;};int main(){ struct student a[100],temp; int i,j,n; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s %d",&a[i].name,&a[i].score); } for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j].score<a[j+1].score) { temp=a[j]; a[j]=a[j+1]; a[j+1]= temp; } } } for(i=0;i<n;i++) { printf("%s\n",a[i].name); }}
时间复杂度:O(n²)
阅读全文
0 0
- 【排序】1.2冒泡排序
- 1.2冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- css左右上下居中的几种
- ROS下多机器人实现通信
- oracle恢复delete的数据
- linux硬件时钟的设置
- jQuery.siblings() 函数详解
- 【排序】1.2冒泡排序
- reids的复制和主从复制
- 合并bn层到conv或FC层原理介绍及代码实现
- CMake
- Spring Boot 静态资源处理
- A Berkeley View of Systems Challenges for AI
- python写入文件报错记录
- C++ STL一一deque
- 形象的解释神经网络激活函数的作用