最近在阅读《数据结构(c++语言版)》,所以在这里总结一下
起泡排序
void bubblesort1A(int A[], int n)
{ //起泡排序算法(版本1A):0 <= n
bool sorted = false; //整体排序标志,首先假定尚未排序
while (!sorted)
{ //在尚未确讣已全尿排序乀前,逐趟迕行扫描交换
sorted = true; //假定已经排序
for (int i = 1; i < n; i++)
{ //自左向右逐对检查弼前范围A[0, n)内癿各相邻元素
if (A[i - 1] > A[i])
{ //一旦A[i - 1]不A[i]逆序,则
swap(A[i - 1], A[i]); //交换之,幵
sorted = false; //因整体排序丌能保证,需要清除排序标志
}
n--; //至此末元素必然就位,故可以缩短待排序序列癿有效长度
}
}
}