1 #include <stdio.h> 2 #include <algorithm> 3 int main() 4 { 5 int C, n, arr[11]; 6 scanf("%d", &C); 7 while(C--) { 8 scanf("%d", &n); 9 for(int i=0; i<n; i++) 10 scanf("%d", arr+i); 11 std::sort(arr, arr+n); 12 printf("%d\n", arr[1]); 13 } 14 return 0; 15 }
1 #include <stdio.h> 2 #include <algorithm> 3 4 int partition(int *arr, int p, int q) { 5 int pivot=arr[p]; 6 int i=p, j=q; 7 while(i<j) { 8 while(arr[j]>=pivot&&i<j) 9 --j; 10 arr[i]=arr[j]; 11 while(arr[i]<=pivot&&i<j) 12 ++i; 13 arr[j]=arr[i]; 14 } 15 arr[i]=pivot; 16 return i; 17 } 18 19 int KthMin(int *arr, int p, int q, int k) { 20 int m=partition(arr, p, q); 21 if(m<k-1) 22 return KthMin(arr, m+1, q, k); 23 else if(m>k-1) 24 return KthMin(arr, p, m-1, k); 25 else 26 return arr[m]; 27 } 28 29 int main() 30 { 31 int C, n, arr[11]; 32 scanf("%d", &C); 33 while(C--) { 34 scanf("%d", &n); 35 for(int i=0; i<n; i++) 36 scanf("%d", arr+i); 37 printf("%d\n", KthMin(arr, 0, n-1, 2)); 38 } 39 return 0; 40 }
原文:http://www.cnblogs.com/BlackStorm/p/4940926.html