HDU-1040- As Easy As A+B-选择排序+冒泡排序
来源:互联网 发布:淘宝子账号登陆错误202 编辑:程序博客网 时间:2024/04/29 23:25
其实贴这道题目是为了给新手介绍一下这几个简单排序方法;
首先我们看一下选择排序,思路很简单,就是从第一个开始每次定位一个数,和数组中最大(最小)的数交换一下位置;
不过这是个不稳定排序算法;
#include<stdio.h>int a[1005];// 交换函数;void Swap(int &a,int &b){ int temp=a; a=b; b=temp;}int main(){ int n,t; scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++){ // 选择排序; for(int j=i+1;j<n;j++){ if(a[i]>a[j]) Swap(a[i],a[j]); } } for(int i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[n-1]); } return 0;}
恩,现在我们再看一下冒泡排序;
冒泡冒泡,顾名思义,跟鱼吐泡泡似的,越靠近水面越大;从第一个开始一次比较相邻两个数的大小,不符合顺序便交换顺序;
每一轮交换,便将最大(最小)的数“吐”出来了。。。
详细过程详解大家可以看一下这个链接,有案列分析:http://www.cnblogs.com/kkun/archive/2011/11/23/2260280.html
#include<stdio.h>int a[1005];// 交换函数;void Swap(int &a,int &b){ int temp=a; a=b; b=temp;}int main(){ int n,t; scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++){ // 冒泡排序; for(int j=0;j<n-i-1;j++){ if(a[j]>a[j+1]) Swap(a[j],a[j+1]); // 交换临近两个数的顺序; } } for(int i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[n-1]); } return 0;}
0 0
- HDU-1040- As Easy As A+B-选择排序+冒泡排序
- hdu-1040-As Easy As A+B(冒泡排序)
- HDU 1040 As Easy As A+B 排序
- hdu 1040 As Easy As A+B (水题,排序)
- HDU 1040(As Easy As A+B) 堆排序练习
- HDU 1040(As Easy As A+B) 归并排序练习
- hdu 1040 As Easy As A+B 堆排序
- 【HDU 1040】As Easy As A+B —— 排序
- hdu 1040 As Easy As A+B 各种排序
- 1040 As Easy As A+B【排序】
- (hdu step 1.3.7)As Easy As A+B(排序)
- HDU1040 As Easy As A+B【排序】
- CPP 1373 Easy as A+B(冒泡排序)
- hdoj 1040 As Easy As A+B 【归并排序】
- HDU-1040 as easy as a+b
- hdu 1040 As Easy As A+B
- hdu 1040 As Easy As A+B
- hdu 1040 As Easy As A+B
- POI导出JavaWeb中的table到excel下载
- 创建第一个 chrome app
- caffe --- 网络参数
- iOS开发笔记--如何去掉UItableview header(footer)view黏性(sticky)
- Python之 sort和sorted
- HDU-1040- As Easy As A+B-选择排序+冒泡排序
- POJ - 3311 Hie with the Pie (状态压缩)
- FFT 快速傅里叶变换 初探
- linux c获取IP地址
- Cocos2d-x action动作整理集合
- 异步编程:When.js快速上手
- C/C++/Fortran混合编程浅谈------直接链接方式
- linux系统中python导入其他的目录下的文件
- AP算法java实现