期望时间为线性时间的选择算法(C++)
来源:互联网 发布:中国黑科技知乎 编辑:程序博客网 时间:2024/04/27 13:48
#include <iostream>using namespace std;void exchange(int& x, int& y){ int tem = x; x = y; y = tem;} int par(int a[],int b,int e){ int x = a[b]; int j = b + 1; int i = b; for(;j != e + 1;++j){ if(a[j] <= x){ ++i; exchange(a[i],a[j]); } } exchange(a[b],a[i]); return i;}int select(int a[],int p,int r,int i){// To select the i.th little digit if(p == r) return a[r]; int q = par(a,p,r);//q是划分后首元素在序列中的下标 int k = q - p + 1;//k是已经确定此序列a[p...r]的第k小元素 if(i == k) return a[q]; else if(i < k) return select(a,p,q - 1,i); else return select(a,q + 1,r,i - k);//第一次把q写成k了。。。} int main(int argc, char *argv[]){ int a[] = {50,2,11,22,33,44,66,88,77,99}; cout << select(a,0,9,-1) << endl; return 0;}
0 0
- 期望时间为线性时间的选择算法(C++)
- 期望为线性时间的选择算法(c语言)
- 期望为线性时间的选择算法
- 期望为线性时间选择算法
- 期望为线性时间的选择算法randomizedSelect
- Java 期望为线性时间的选择算法
- CLRS 9.2期望为线性时间的选择算法
- 选择问题的线性期望时间算法
- 算法导论程序19-期望为线性时间的选择算法(Python)
- 期望线性时间选择
- 小白进阶之期望为线性时间的选择算法
- 线性期望时间选择问题C语言
- 线性期望时间选择问题C语言
- 算法之分治——期望线性时间的选择(基础版本的选择)
- 期待为线性时间的选择算法
- 算法导论:第9章 中位数和顺序统计量_1期望为线性时间的选择算法
- 期望为线性的选择算法
- 算法--顺序统计-期望线性时间做选择
- ubuntu 15.04 怎么安装搜狗输入法
- [持续更新]HTML5学习笔记(三)
- Chisel-LLDB命令插件,让调试更Easy
- flume日志收集系统搭建
- java 第七天 排序
- 期望时间为线性时间的选择算法(C++)
- poj 2002 Squares
- gridview控件
- 计算机为什么要用补码
- 多线程相关
- oracle 学习sql
- leetcode 201:Bitwise AND of Numbers Range
- 第三方加载图片
- 如何确定map以及reduce的个数