利用快速排序的思想,其中K从1开始
例如寻找5,2,6,3中的第3大数,排好序后变为2,3,5,故结果为5,可以利用上述函数cout<< quicksort(x,3)<<endl;
注意数组从0开始,
- int quicksort(int * x , int l ,87); font-weight:bold; background-color:inherit">int r ,87); font-weight:bold; background-color:inherit">int k)
- {
- if(l == r && k==1)return x[l];
- int i , j ;
- for(i=l-1 , j=l;j<r;j++)
- if(x[j]<x[r])std::swap(x[++i] , x[j]);
- std::swap(x[++i] , x[r]);
- if(k==(i-l+1))return x[i];
- if(k<=(i-l))return quicksort(x , l , i-1 , k);
- if(k>(i-l+1)) }
例如寻找5,2,6,3中的第3大数,排好序后变为2,3,5,故结果为5,可以利用上述函数cout<< quicksort(x,3)<<endl;
注意数组从0开始,