交换排序-起泡排序

一、定义

    首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即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;
			}
		}
	}
}

Guess you like

Origin blog.csdn.net/psl1234554321/article/details/106517605