1040:As Easy As A+B
来源:互联网 发布:手机导航网站源码 编辑:程序博客网 时间:2024/06/08 04:56
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1040
方法:排序
思路:就是单纯的排序,偷懒的话那就用sort,不过借此机会应该好好熟悉一下常用的几种排序思路,我用的方法是快排,详细思路我看到的一篇博客已经讲得很好了,非常生动,我就做一回搬运工,链接如下:http://developer.51cto.com/art/201403/430986.htm
难点:多种方法排序(目前先更新快速排序)
#include<cstdio>using namespace std;const int N = 1000;int data[N],n;void quicksort(int left,int right){ if(left>right) return ; int i,j,st; i = left; j = right; st = data[left]; while(i!=j) { while(data[j]>=st&&i<j) j--; while(data[i]<=st&&i<j) i++; if(i<j) { int t = data[i]; data[i] = data[j]; data[j] = t; } } data[left] = data[i]; data[i] = st; quicksort(left,i-1); quicksort(i+1,right);}int main(){ int t,i; while(~scanf("%d",&t)) { while(t--) { scanf("%d",&n); for(i = 1;i <= n;i++) scanf("%d",&data[i]); quicksort(1,n); for(i = 1;i <= n;i++) { if(i != n) printf("%d ",data[i]); else printf("%d\n",data[i]); } } }}
方法2:插入排序
最近看了MIT的算法导论的前导课,感觉还是很有意思的,自己动手实现了一下课程上讲的排序算法,当然了,上述快排已经详细说明了,在此不做赘述,现在看看插入排序的方法。
插入排序是一种最简单的,最原始的排序思想,就是假设某个数据之前都是排好序的数组,而后扫描每一个数据,如果数据大于某个数,那就将这个数插入到前面,其余数据依次顺延一位。注意,这里顺延一定要从后向前进行,否则会覆盖掉之前的数据。
#include<iostream>using namespace std;void insert_sort(int arry[],int num){ int i,j; for(i = 1;i < num;i++) { int temp = arry[i]; for(j = i-1;j >= 0;j--) { if(arry[j] > temp) { arry[j+1] = arry[j]; } else break; } arry[j+1] = temp; }}int main(){ int arry[2000]; int n,t; while(cin>>t) { while(t--) { cin>>n; for(int i = 0;i < n;i++) { cin>>arry[i]; } insert_sort(arry,n); for(int i = 0;i < n;i++) { if(i == n-1) cout<<arry[i]; else cout<<arry[i]<<" "; } cout<<endl; } } return 0;}
0 0
- 1040 As Easy As A+B
- hoj 1040 As Easy As A+B
- HDU-1040 as easy as a+b
- 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
- As Easy As A+B 1040
- HDU 1040 As Easy As A+B
- As Easy As A+B 1040
- HDOJ 1040 As Easy As A+B
- hdu-1040-As Easy As A+B
- As Easy As A+B hdu 1040
- HDOJ 1040 As Easy As A+B
- HDU--1040 As Easy As A+B
- UINavigationControlle(导航视图控制器)控制下的页面跳转与值的传递(协议传值)
- Laravel 5文档阅读摘要
- date.getTime() 转换成 date
- iOS -读书笔记-网络请求
- sourceinsight中文显示乱码问题彻底解决办法
- 1040:As Easy As A+B
- 固态硬盘SSD
- html中利用js实现简单图片轮换效果
- linux查看文件系统类型
- Android UI学习之Dialog
- POJ 2251:Dungeon Master【bfs】
- Android getVisibility()返回值对应的状态
- JSP基础语法篇——编程题
- LightOJ 1051 Good or Bad