算法导论 RandomizedSelect
来源:互联网 发布:mysql 断电 无法启动 编辑:程序博客网 时间:2024/06/01 10:50
#include <stdio.h>#include <limits.h>#include <stdlib.h>int randomizedPartition(int a[],int p,int r){if(r<p)return -1;srand(47); int v = rand() % (r-p+1)+p;int temp=a[r];a[r]=a[v];a[v]=temp;int i=p-1,j=p,x=a[r];while(j<r){if(a[j]<x){i++;temp=a[j];a[j]=a[i];a[i]=temp;}j++;}temp=a[i+1];a[i+1]=a[r];a[r]=temp;return i+1;}int randomizedSelect(int a[],int p,int r,int i){if(p==r)return a[p];int q=randomizedPartition(a,p,r);int k=q-p+1;if(i==k)return a[q];else if(i<k){return randomizedSelect(a,p,q-1,i);}else{return randomizedSelect(a,q+1,r,i-k);}}void main(){int a[6]={INT_MIN,99,8,43,2,21};int k=randomizedSelect(a,1,5,2);printf("%d",k);getchar();}
0 0
- 算法导论示例-RandomizedSelect
- 算法导论 RandomizedSelect
- 期望为线性时间的选择算法randomizedSelect
- 《算法导论》
- 《算法导论》
- 算法导论
- 算法导论
- 算法导论
- 算法导论
- 算法导论
- 算法导论
- 算法导论
- 《算法导论》
- 《算法导论》
- 算法导论
- 算法导论
- 算法导论
- 算法导论
- 51nod:1174 区间中最大的数(RMQ)
- java 计算两字符串的最大子字符串
- FullCalendar – jQuery Event Calendar in ASP.NET
- cc2540 usb hid升级
- 电子元件的学习
- 算法导论 RandomizedSelect
- 函数在实现过程内存中的压栈和出栈
- LeetCode-494. Target Sum (JAVA) (目标和)
- HDU 4675
- 矩阵的加法、减法、乘法、转置
- spring 获取上下文applicationContext
- [BZOJ 1207][HNOI2004]打鼹鼠:DP
- 动态规划练习一—14怪盗基德的滑翔翼
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)