编程珠玑第一章第一题的解法,常用的排序
来源:互联网 发布:iphone网络不可用 编辑:程序博客网 时间:2024/06/05 12:49
编程珠玑第一章习题
第一题
如果不缺内存,如何使用一个库的语言实现一种排序算法以表示和排序集合
解法一 使用c++的sort
#include <algorithm> #include <iostream> using namespace std; template <class T> int getArrLength( T& arr){//获取普通数组的长度 return sizeof(arr)/sizeof(arr[0]); } template <class T> int getCharArrLength(T& arr){//获取字符数组的长度 return sizeof(arr)/sizeof(arr[0])-1; } template <class T> void printArr(T& arr){ for(int i=0;i<getArrLength(arr);i++){ cout<<arr[i]<<" "; } cout<<endl; } bool cmp(int a,int b)//降序排序 { return a>b; } int main(){ char arr[10]="dcaefrmnz"; cout<<arr<<endl; sort(arr,arr+getCharArrLength(arr)); cout<<arr<<endl; // int arr[10]={3,4,6,5,10,3,7,5,0,14} ; // printArr(arr); // sort(arr,arr+getArrLength(arr),cmp); // printArr(arr); }
解法二 使用c语言的qsort
#include <stdio.h> #include <stdlib.h> int intcomp(int *x, int *y) { return *x - *y; } int a[1000000]; int main() { int i, n=0; while (scanf("%d", &a[n]) != EOF) n++; qsort(a, n, sizeof(int), intcomp); for (i = 0; i < n; i++) printf("%d\n", a[i]); return 0; }
解法三 使用set库
#include <iostream> #include <set> using namespace std; int main() { set<int> S; int i; set<int>::iterator j; while (cin >> i) S.insert(i); for (j = S.begin(); j != S.end(); ++j) cout << *j << "\n"; return 0; }
解法四 使用vector库
可以看看这位的了解一下如何使用
blog.csdn.net/hnu_zxc/article/details/6746029
0 0
- 编程珠玑第一章第一题的解法,常用的排序
- 编程珠玑第一章第一题的解法,常用的排序
- 《编程珠玑》第一章-位图排序
- 【编程珠玑】第一章电话号码排序
- 关于编程珠玑第一章的体会
- 编程珠玑之第一章习题3:度量100w整数排序的运行时间
- 编程珠玑第一章位图排序扩展算法(可以排列包含负数的整数)
- 《编程珠玑》第一章第九题
- 编程珠玑第一章第二题
- 编程珠玑第一章第六题
- 编程珠玑第一章,电话号码排序问题
- 磁盘排序(编程珠玑第一章)
- 编程珠玑 第一章 大数据排序
- "编程珠玑" 第一章 磁盘文件排序问题
- [编程珠玑]-第一章:位图/位向量排序
- 三个版本的插入排序 - 编程珠玑
- 编程珠玑----快速排序的变形
- 编程珠玑之第一章习题5:k趟算法给1000w数据排序的测试用例
- 字符集与编码
- base64编码和解码
- ProcessBar简单应用
- tomcat启动或者clean都报错 一种错
- 解决MySQL删除外键时报错
- 编程珠玑第一章第一题的解法,常用的排序
- shader笔记(2)
- shell脚本学习笔记之grep&正则表达式
- Spring AOP @Before @Around @After 等 advice 的执行顺序
- Android 创建单例模式的几种方法
- HDU4421
- 组合数学 polay定理 hud 2409 Let it Bead
- OpenCV 之 边缘检测
- c++顺序容器