quickselect.cpp
来自「这是一个利用遗传算法求解函数极值」· C++ 代码 · 共 41 行
CPP
41 行
#include "stdafx.h"
#include "QuickSelect.h"
int Partition(double A[],int left,int right)
{
int i=left,
j=right+1;
double x=A[left],
dtemp;
while(1)
{
while(A[++i]>x);
while(A[--j]<x);
if(i>=j) break;
dtemp=A[i];
A[i]=A[j];
A[j]=dtemp;
}
A[left]=A[j];
A[j]=x;
return j;
}
double QuickSelect(double A[],int left,int right,int k)
{
if(left==right)
return A[left];
int i=Partition(A,left,right),
j=i-left+1;
if(k<=j)
{
if(k=j)
return A[i];
else
return QuickSelect(A,left,i,k);
}
else
return QuickSelect(A,i+1,right,k-j);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?