输入n个整数,找出其中最小的K个数

来源:互联网 发布:模拟人生4作弊码mac 编辑:程序博客网 时间:2024/05/21 17:12

先进行快速排序算法,使得比第k个数小的整数都排到第k个数之前,然后第k个数的左边就是数组中最小的K个数;

算法实现如下:

void GetLeastNumbers(int* input,int n,int* output,int k){

if(input==null||output==null||n<=0||k>n||k<=0){
return;
}
int start=0;
int end=n-1;
int index=partition(input,n,start,end);//快速排序算法
while(index!=k-1){
if(index>k-1){
end=index-1;
index=partition(input,n,start,end);
}
else {
start=index+1;
index=partition(input,n,start,end);
}
}
for(int i=0;i<k;i++){
output[i]=input[i];
}
}//输入n个整数,找出其中最小的K个数
0 0
原创粉丝点击