对n个数进行排序(正序或者倒序)--06 年华科计算机保研机试真题
2018-02-28 19:57
183 查看
例 2.1 排序 (九度教程第 1 题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否
题目描述:
对输入的
n
个数进行排序并输出。
输入:
输入的第一行包括一个整数
n(1<=n<=100)
。接下来的一行包括
n
个整数。
输出:
可能有多组测试数据,对于每组数据,将排序后的
n
个整数输出,每个数后
面都有一个空格。每组测试数据的结果占一行。
样例输入:
4
1 4 3 2
样例输出:
1 2 3 4
来源:
2006
年华中科技大学计算机保研机试真题
做法一:分析空间复杂度和时间复杂度之后可以采取冒泡算法来解决这道题目
做法二:使用C++中带的sort库函数利用快速排序处理该问题
扩展:用库函数实现倒序排列
时间限制:1 秒 内存限制:32 兆 特殊判题:否
题目描述:
对输入的
n
个数进行排序并输出。
输入:
输入的第一行包括一个整数
n(1<=n<=100)
。接下来的一行包括
n
个整数。
输出:
可能有多组测试数据,对于每组数据,将排序后的
n
个整数输出,每个数后
面都有一个空格。每组测试数据的结果占一行。
样例输入:
4
1 4 3 2
样例输出:
1 2 3 4
来源:
2006
年华中科技大学计算机保研机试真题
做法一:分析空间复杂度和时间复杂度之后可以采取冒泡算法来解决这道题目
#include<stdio.h> int main(){ int n,buf[100]; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++) scanf("%d",&buf[i]); //进行不间断的数据输入 for(int i=0;i<n;i++) for(int j=0;j<n-1-i;j++) if(buf[j]>buf[j+1]){//两两比较大小,把数值大的移动到后面。 int temp=buf[j]; buf[j]=buf[j+1]; buf[j+1]=temp; } for(int i=0;i<n;i++) printf("%d ",buf[i]); printf("\n"); } return 0; }
做法二:使用C++中带的sort库函数利用快速排序处理该问题
#include<stdio.h> #include<algorithm> using namespace std; int main(){ int n,buf[10000]; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++) scanf("%d",&buf[i]); sort(buf,buf+n); for(int i=0;i<n;i++) printf("%d ",buf[i]); printf("\n"); } return 0; }
扩展:用库函数实现倒序排列
#include<stdio.h> #include<algorithm> using namespace std; bool cmp (int x,int y){ return x>y; } int main(){ int n,buf[10000]; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++) scanf("%d",&buf[i]); sort(buf,buf+n,cmp);//使用自定义的排序函数 for(int i=0;i<n;i++) printf("%d ",buf[i]); printf("\n"); } return 0; }
相关文章推荐
- 对javascript表格中的元素进行排序(正序和倒序)
- sql查询一些数据进行正序排序,除外的数据进行倒序排序
- java 策略模式,list集合,实现id 姓名年龄正序倒序排序(如果年龄或者姓名重复,按id正序排序)
- 安卓学习笔记---对List集合进行排序(正序或者倒叙)
- List<Object>使用Object的某个属性进行排序(正序,倒序)
- Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法
- 题目1205:N阶楼梯上楼问题(2008年华中科技大学计算机保研机试真题:递推求解)
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- 题目1205:N阶楼梯上楼问题(2008年华中科技大学计算机保研机试真题:递推求解)
- 对list集合中的POJO对象某个属性进行排序(String或者数值)
- Wijmo 更优美的jQuery UI部件集:在对Wijmo GridView进行排序或者过滤时保留选择
- 如何利用sorted函数对列表,元组或者对象进行排序
- linux 中使用ls命令对文件进行排序-- 基于文件大小或者修改时间
- 怎样对平面中的点进行顺时针或者逆时针排序
- 题目及解答:策略模式+泛型(对Person类按姓名、id、年龄正序、倒序排序)
- 对字符串数组进行排序和倒序排列
- Wijmo 更优美的jQuery UI部件集:在对Wijmo GridView进行排序或者过滤时保留选择
- 字符型数组表示大整数 并排序、求和(华科保研机试)
- Java对英文句子进行倒序排序
- GridView 加排序序号(正序,倒序)