算法——冒泡排序

冒泡排序

  1. 概念
    冒泡排序是一种最简单的交换排序方法,它通过两两相比交换相邻记录的关键字,如果发送逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上“漂浮”,或者使关键字大的记录如石块一样逐渐向下“坠落”。
  2. 算法步骤
  • 设待排序的记录存放在数组r[1···n]中。首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即r[1]>r[2]),则交换两个记录。然后比较第二个记录和第三个记录的关键字。以此类推,直至第n-1个记录和第n个记录的关键字进行过比较为止。上诉过程称作第一趟排序,其结果使得关键字最大的记录被安置到最后一个记录的位置上。
  • 然后就行第二趟冒泡排序,对前n-1个记录进行同样操作,其结果使关键字次大的记录被放置到第n-1个记录的位置上。
  • 重复上述比较和交换过程,第i趟是从r[1]到r[n-i-1]依次比较相邻两个记录的关键字,并在“逆序”时交换相邻记录,其结果是这n-i-1个记录中关键字最大的记录被交换到第n-i-1的位置上,直到在某一趟排序过程中没有进行过交换记录的操作,说明序列已全部达到排序要求,则完成排序。
  1. 代码
void BubbleSort(int[] nums)
{
	int m = nums.length-1;
	boolean flag=true;
	while(m>0&&flag==true)
	{
		flag=false;
		for(int i=0;i<m;i++)
		{
			if(nums[i]>nums[i+1])
			{
				flag=true;
				int t=nums[i];
				nums[i]=nums[i+1];
				nums[i+1]=t;
			}
		}
		m--;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值