二元选择排序

来源:互联网 发布:大数据时代宣传片 编辑:程序博客网 时间:2024/05/29 08:33
void BinarySelectSort(int r[], int n) {    int i, j, min, max, tmp;    for (i = 1; i <= n / 2; i++) {        // 做不超过n/2趟选择排序           min = i; max = i; //分别记录最大和最小关键字记录位置          for (j = i + 1; j <= n - i; j++) {            if (r[j] > r[max]) {                max = j;                 continue;            }            if (r[j]< r[min]) {                min = j;            }        }        //该交换操作还可分情况讨论以提高效率          cout << "交换前:" << endl;                                                     print(r, n, i);                     tmp = r[i - 1];                     r[i - 1] = r[min];                  r[min] = tmp;                       tmp = r[n - i];                                     r[n - i] = r[max];                  r[max] = tmp;                       cout << "交换后:"<< endl;        print(r,n, i);        cout << endl;    }}
0 0
原创粉丝点击