一、定义
首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即L.r[1].key > L.r[2].key),则将两个记录交换之,然后比较第二个记录和第三个记录的关键字。依次类推,直至第n-1个记录和第n个记录的关键字进行过比较为止。上述过程称为一次起泡排序,其结果是使得关键字最大的记录被安置到最后一个记录的位置上。然后进行第二趟起泡排序,直至n - 1趟为止就完成了整个起泡排序过程。
二、实现
/*
冒泡排序:
算法复杂度 0(n^2),稳定的算法
*/
void bubbleSort(ElementType list[],int n){
ElementType temp;
int i,j;
for(i = 0 ; i < n - 1;i++){
//n - 1趟排序
for(j = 0; j < n - i + 1; j++){
//逐个下沉,下沉到n - i + 1的位置
if(list[j] > list[j + 1]){
//交换
temp = list[j + 1];
list[j + 1] = list[j];
list[j] = temp;
}
}
}
}