zoukankan      html  css  js  c++  java
  • 从数组中寻找前k小的数据

    #include<stdio.h>
    void find_bigger_num(int *arr ,int iLeft ,int iRight ,int iTargetSize ){
            if( iLeft>= iRight) return;
            int iPivot = arr[ iLeft];
            int iBegin = iLeft;
            int iEnd = iRight;
            while (iBegin < iEnd) {
                   while (iBegin < iEnd && arr[iEnd] >= iPivot) {
                         iEnd--;
                  }
                   arr[iBegin] = arr[iEnd];
                   while (iBegin < iEnd && arr[iBegin] <= iPivot) {
                         iBegin++;
                  }
                   arr[iEnd] = arr[iBegin];
           }
            arr[iBegin] = iPivot; //iBegin == iEnd
           
            int iLeftPartNum = iBegin - iLeft;
            if(iLeftPartNum== iTargetSize || iLeftPartNum+1==iTargetSize )
                   return;
            else if(iLeftPartNum> iTargetSize){
                  find_bigger_num( arr, iLeft,iBegin-1, iTargetSize);
           }
            else if(iLeftPartNum+1< iTargetSize){
                  find_bigger_num( arr,iBegin+1, iRight, iTargetSize-(iLeftPartNum+1));
           }
    }
    
    int main()
    {
            int arr[] = {6,1,5,2,3,7,4,10,9,8};
            int iTargetSize = 6;
           find_bigger_num(arr,0, sizeof(arr)/ sizeof( int)-1,iTargetSize);
           
            for ( int iLoop = 0; iLoop < iTargetSize; iLoop++) {
                  printf( "%d ",arr[iLoop]);
           }
           printf( "
    ");
            return 0;
    }
    

      

  • 相关阅读:
    Moving Price and Standard Price
    Partner function解析
    [ABAP] ABAP中定义和呼叫宏
    ABAP
    Words Learning~~(1-3)
    Words Learning~~(1-2)
    Words Learning~~(1-1)
    SQLSERVER如何查看索引缺失
    Material Stock manage T-code
    远程重启
  • 原文地址:https://www.cnblogs.com/dongfangchun/p/9447110.html
Copyright © 2011-2022 走看看