交换排序-起泡排序

一、定义

    首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即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 ;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;
			}
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章