北航计算机复试上机题(2009)
2012-03-22 22:16
309 查看
2 数组排序
输入一个数组的值,求出各个值从小到大排序后的次序。
输入:输入的第一个数为数组的长度,后面的数为数组中的值,以空格分割
输出:各输入的值按从小到大排列的次序。
sample
input:
4
-3 75 12 -3
output:
1 3 2 1
seven代码,使用map
输入一个数组的值,求出各个值从小到大排序后的次序。
输入:输入的第一个数为数组的长度,后面的数为数组中的值,以空格分割
输出:各输入的值按从小到大排列的次序。
sample
input:
4
-3 75 12 -3
output:
1 3 2 1
#include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct example { int elem1; int elem2; }example; bool comparison(example a,example b) { return a.elem1<b.elem1; } bool comparison2(example a,example b) { return a.elem2<b.elem2; } int main() { int N; int k; int temp; cin>>N; vector<example> array(N); for(int i=0;i<N;i++) { cin>>array[i].elem1; array[i].elem2=i+1; } sort(array.begin(),array.end(),comparison); k=0; for(int i=0;i<N;i++) { temp=array[i].elem1; array[i].elem1=k+1; for(int j=i+1;j<N;j++) { if(array[j].elem1==temp) { array[j].elem1=array[i].elem1; } else { i=j-1; k++; break; } } } sort(array.begin(),array.end(),comparison2); for(int i=0;i<N;i++) { cout<<array[i].elem1<<" "; } cout<<endl; system("pause"); return 0; }
seven代码,使用map
#include <iostream> #include <string> #include <iterator> #include <algorithm> #include <vector> #include <map> using namespace std; int main() { int a, b; cin >> a; int cnt = 1; int *iptr = new int[a]; map<int, int> map_sort; for(int i = 0; i < a; i++) { cin >> b; iptr[i] = b; if(map_sort.find(b) == map_sort.end()) { map_sort[b] = cnt++; } } sort(iptr, iptr + a); for(int i = 0; i < a; i++) cout << map_sort[iptr[i]] << " "; cout << endl; return 0; }
相关文章推荐
- 2009西电计算机研究生复试上机题(2)
- 北航计算机2009年的复试上机题目
- 北航计算机2009年的复试上机题目
- 北航研究生复试2009上机第三题:字符串查找删除
- 2011年北航计算机复试上机题
- 2011年北航计算机复试上机题
- 2011年北航计算机复试上机题代码
- 2011年北航计算机复试上机题代码
- 2009浙大上机复试解题报告
- 2011年北航计算机复试上机题及代码
- 2009西电计算机研究生复试上机题
- 2011年北航计算机复试上机题及代码
- 北航计算机复试上机题(2008)
- hdu 3792 Twin Prime Conjecture 浙大复试上机题 水题
- 北邮考研复试C语言上机题目精选
- 还是畅通工程(2006浙江大学研究生上机复试题目[最小生成树] hdoj 1233)
- 华中科技大学_2008___考研计算机_复试上机
- 北京航空航天大学 2008年复试上机题 解题报告
- 计算机研究生复试上机题目:顺时针螺旋矩阵简单实现
- 浙大研究生复试上机考试2005——畅通工程