手写快速排序【随机数作基数】
来源:互联网 发布:js鼠标滚动条事件 编辑:程序博客网 时间:2024/05/17 22:42
/*ID: j.sure.1PROG:LANG: C++*//****************************************/#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <stack>#include <queue>#include <vector>#include <map>#include <string>#include <climits>#include <iostream>#define LL long longusing namespace std;const int INF = 0x3f3f3f3f;/****************************************/int part(int *a, int l, int r){srand(time(0));int i = int(rand() % (r-l+1) + l);//取l~r随机数int key = a[i];a[i] = a[l];//现在key是基数,a[l]留作安放键值while(l < r) {while(l < r && a[r] >= key) r--;a[l] = a[r];//自右向左找到第一个小于基数的,安放在a[l]while(l < r && a[l] <= key) l++;a[r] = a[l];//自左向右找到第一个大于基数的,安放在a[r]}a[l] = key;//此时l==r,key左边的值都比它小,右边都比它大return l;}void Qsort(int *a, int l, int r){if(l < r) {int m = part(a, l, r);Qsort(a, l, m-1);Qsort(a, m+1, r);}}int main(){int a[7];for(int i = 0; i < 6; i++) {scanf("%d", &a[i]);}Qsort(a, 0, 5);for(int i = 0; i < 6; i++) {printf("%d ", a[i]);}return 0;}
0 0
- 手写快速排序【随机数作基数】
- 基于随机数作为基数的快速排序算法 quick_sort
- 基数+快速排序
- 手写快速排序
- 手写快速排序
- 手写快速排序
- 手写个快速排序
- 手写的qsort快速排序
- 【手写排序算法及优化】快速排序
- 排序算法——希尔 冒泡 快速 插入 归并 基数
- 手写快速排序——sort
- 技术面试手写代码考题--快速排序
- 用随机数实现快速排序
- 基数(cardinality)排序算法
- 字符串排序/基数&Trie
- 排序算法汇总--冒泡,插入,归并,快速,堆,计数,基数,桶排序
- 排序算法,插入、快速、希尔、基数、归并排序的代码实现和效率分析
- 快速排序置随机数代码实现
- 第十周项目6-贪财的富翁
- 求小数的循环节
- POJ 1849 Two(遍历树)
- Java基础-将Bean属性值放入Map中
- using thymeleaf 之 th:each迭代循环
- 手写快速排序【随机数作基数】
- hdu 4771 Stealing Harry Potter's Precious(bfs+枚举)
- 中文分词实现——双向最大匹配
- 的个电饭锅
- [jbb0523整理]压缩感知中的数学知识:NP-hard问题
- 日语学习之新版初级标准日本语-6 吉田さんは来月中国へ
- 第10周项目 逗你玩
- hdu2674 N!Again
- 【记中关村.西北食府.兰州拉面】诗一首