首页 > 学院 > 开发设计 > 正文

二元选择排序

2019-11-06 08:49:01
字体:
来源:转载
供稿:网友
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; }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表