📄 线性时间选择.cpp
字号:
#include<iostream>
#include<math.h>
using std::cout;
using std::cin;
using std::endl;
#define N 10
//用快速排序法随机化版本将数组分成两组,一直分到第i小的元素,输出这个元素
//快速排序随机化版本
int rand_partition(int a[],int p,int r)
{
int key,x; //x是划分值 //
x=a[p+rand()/(r-p+1)];
while (p<r)
{
while(a[r]>x)
r--;
while(a[p]<x)
{
p++;
}
if(p<r)
{
key=a[p];
a[p]=a[r];
a[r]=key;
}
}
return r;
}
int randomized_select(int a[N],int start,int end,int i)
{
int q,k;
if(start==end)
return a[end];
q=rand_partition(a,start,end);
k=end-q+1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -