找第K大的数
来源:互联网 发布:数据分析导论 编辑:程序博客网 时间:2024/05/09 02:24
#include <iostream>using namespace std;//快速排序的划分函数int partition(int a[], int l, int r){int i, j, x, temp;i = l;j = r + 1;x = a[l];//将>=x的元素换到左边区域//将<=x的元素换到右边区域while (1){while (a[++i] > x);while (a[--j] < x);if (i >= j) break;temp = a[i];a[i] = a[j];a[j] = temp;}a[l] = a[j];a[j] = x;return j;}//随机划分函数int random_partition(int a[], int l, int r){return partition(a, l, r);//调用划分函数}//线性寻找第k大的数int random_select(int a[], int l, int r, int k){if (l > r)return -1;int p = random_partition(a, l, r);int no = p - l + 1;if (no != k){if (no > k){random_select(a, l, p-1, k);}else{random_select(a, p+1, r, k-no);}}else{return a[p];}}int main(){int a[] = { 1, 2, 7, 4, 6, 6, 7, 8, 10, 4 };for (int i = 0; i < 10; i++){cout << random_select(a, 0, 9, i+1) << endl;}return 0;}
0 0
- 找第k大的数
- 找第K大的数
- 找第K大的数
- 找第k大的数
- 自己练习的找第K大的数。
- 找数组中第k大的数
- 两个有序数组找第k大的数
- 找一个数组中第K大的数
- noip2008初赛-找第K大的数
- 快速排序找第k大的数
- 找第k大
- 【模拟】找第k小的数
- 找第k小的数
- 第K大的数
- 第k大的数
- 第k大的数
- 第K大的数
- 第k大的数
- nginx在centos7下开启80端口
- hdu 1045 Fire Net(dfs)
- ubuntu安装samba
- 写在寒假
- Google Design View 之间继承关系
- 找第K大的数
- dependencies和devDependencies区别
- Splay hdu3487 Play with Chain
- 【大数乘法】【模板记录】哈理工1159MAGI System
- USB hub 多usb接口重映射:udev 规则
- 第 10 章 css 样式设置小技巧
- JAVA程序员成长之路
- 配置MongoDB3.04集群分片
- PAT_乙级1001