交换排序-起泡排序

一、定义

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值