排序思想
依次比较相邻的两个记录的关键字,若两个记录是反序的(即前一个记录的关键字大于后前一个记录的关键字),则进行交换,直到没有反序的记录为止。
① 首先将L->R[0]与L->R[0]的关键字进行比较,若为反序(L->R[0]的关键字大于L->R[1]的关键字),则交换两个记录;然后比较L->R[1]与L->R[2]的关键字,依此类推,直到L->R[n-2]与L->R[n-1]的关键字比较后为止,称为一趟冒泡排序,L->R[n-1]为关键字最大的记录。
② 然后进行第二趟冒泡排序,对前n-1个记录进行同样的操作。
一般地,第i趟冒泡排序是对L->R[1 … n-i+1]中的记录进行的,因此,若待排序的记录有n个,则要经过n-1趟冒泡排序才能使所有的记录有序。
排序示例
设有9个待排序的记录,关键字分别为23, 38, 22, 45, 23, 67, 31, 15, 41,冒泡排序的过程如图1所示。