笔试题之:快排求第n大的数字

来源:互联网 发布:net域名为什么不值钱 编辑:程序博客网 时间:2024/05/29 10:36
#include <iostream>using namespace std;int Grial(int a[], int m,int n){int i = m;int j = n;int temp = a[m];while (i < j){while (i<j && a[j]>=temp)j--;a[i] = a[j];while (i<j && a[i]<=temp)i++;a[j] = a[i];}a[i] = temp;return i;}int Grial(int a[], int m,int n, int val){if (m <= n){int index = Grial(a,m,n);if (index < val-1){Grial(a, index + 1, n, val);}else if (index>val-1){Grial(a, 0, index - 1, val);}    else    {return a[index];     }}}int main(){int a[] = {1,4,5,2,3};cout << Grial(a, 0, sizeof(a) / sizeof(int)-1, 5);}

0 0
原创粉丝点击