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

    xiaoxiao2021-03-25  93

    先进行快速排序算法,使得比第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个数
    转载请注明原文地址: https://ju.6miu.com/read-40091.html

    最新回复(0)