一、冒泡排序相关
1、双向冒泡排序,正反交替冒泡(简直为了出题出题没啥意思...)
//正逆冒泡 题目 简直有病,p335,二 02
template<typename keytype>
void bubbleSort2(keytype data[], int length) {
int flag;
int i, j, k;
for (i = 0, j = length - 1; i < j ;) {
flag = false;
for (k = i; k < j; ++k) {
if (data[k] > data[k + 1]) {
swap(data[k], data[k + 1]);
flag = true;
}
}
--j;//第一次没有加
if (flag == false || i >= j) return;
flag = false;
for (k = j; k > i; --k) {
if (data[k] < data[k - 1]) {
swap(data[k], data[k - 1]);
flag = true;
}
}
++i;//额我之前这个又给忘记加了离谱
if (flag == false || i >= j) return;
}
}
二、快速排序相关
1、将枢轴值从第一位改成随机位(有实际意义,对于顺序逆序