冒泡排序是最常见的交换排序。
void BubbleSort0 (int data[], int n) // index[1, n]
{
for (int i = 1; i < n; ++i) {
for (int j = 1; j <= n - i; ++i) {
if (data[j] > data[j + 1]) {
data[0] = data[j];
data[j] = data[j + 1];
data[j + 1] = data[0];
}
}
}
将最后一次交换的位置pos作为下一趟无序区的末尾。
void BubbleSort (int data[], int n) // index[1, n]
{
int pos = n;
while (pos != 0) {
int bound = pos;
pos = 0;
for (int i = 1; i < bound; ++i) {
if (data[i] > data[i + 1]) {
data[0] = data[i];
data[i] = data[i + 1];
data[i + 1] = data[0];
pos = i;
}
}
}
}
原文地址:http://blog.csdn.net/chfe007/article/details/44133349