选择第i个数

Posted Ren.Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择第i个数相关的知识,希望对你有一定的参考价值。

 1 void swap(int &i, int &j)
 2 {
 3     int temp = i;
 4     i = j;
 5     j = temp;
 6 }
 7 
 8 int partition(int a[], int p, int r)
 9 {
10     int x = a[r];
11     int i = p - 1;
12     for (int j = p; j < r; j++) {
13         if (a[j] <= x) {
14             i ++;
15             swap(a[i], a[j]);
16         }
17     }
18     i ++;
19     swap(a[i], a[r]);
20     return i;
21 }
22 
23 int select(int a[], int p, int r, int i) {
24     int q = partition(a, p, r);
25     int k = q - p;
26     if (k == i) {
27         return a[q];
28     } else if (k > i) {
29         return select(a, p, q - 1, i);
30     } else {
31         return select(a, q + 1, r, i - k - 1);
32     }
33 }

 

以上是关于选择第i个数的主要内容,如果未能解决你的问题,请参考以下文章

选择第i个数

选择排序

算法-排序-1.冒泡排序/2.选择排序/3.插入排序

C言语选择排序算法及代码

基础算法之选择排序算法

webView loadUrl 打开浏览器选择对话框