冒泡排序算法总结

本文深入探讨了冒泡排序算法的三种不同实现版本,包括初级版、正宗版和优化版,详细解释了每种实现的核心逻辑、运行过程及优化思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*冒泡排序初级版*/
public class BubbleSort 
{
	public static void bubbleSort(int[] array)
	{
		for(int i = 0; i < array.length-1; i++) //第i个数
		{
			for(int j = i + 1; j < array.length; j++) //第i+1个数
			{
				if(array[i] > array[j]) //如果前一个数大于后一个数,就进行交换
				{
					int temp = array[i];
					array[i] = array[j];
					array[j] = temp;
				}
			}
		}
	}
	public static void main(String[] args)
	{
		int[] array = {1, 5, 2, 8, 7, 9}; //定义数组
		BubbleSort.bubbleSort(array);
		for(int i = 0; i < array.length; i++) //输出排序后的数
		{
			System.out.println(array[i]);
		}
		
	}
}


/*冒泡排序正宗版*/
public class BubbleSort2
{
	public static void bubbleSort2(int[] array)
	{
		for(int i = 0; i < array.length-1; i++)//比较的趟数,n-1趟
		{
			for(int j = array.length; j >= i + 1; j--) //j从后往前循环
			{
				if(array[j-1] > array[j]) //j中前一个数和后一个数进行比较
				{
					int temp = array[j-1];
					array[j-1] = array[j];
					array[j] = temp;
				}
			}
		}
	}
	public void main(String[] args)
	{
		int[] array = {1, 5, 2, 8, 7, 9}; //定义数组
		BubbleSort.bubbleSort(array);
		for(int i = 0; i < array.length; i++) //输出排序后的数
		{
			System.out.println(array[i]);
		}
	}
}

/*冒泡排序优化版*/
public class BubbleSort3
{
	public static void bubbleSort3(int[] array)
	{
		boolean flag = true; //flag用来作为标记
		for(int i = 0; i < array.length-1 && flag; i++) //如果flag为true则进入趟数的循环
		{
			flag = false; //初始化flag,设置其值为false
			for(int j = array.length; j >= i + 1; j--)
			{
				if(array[j-i] > array[j])
				{
					int temp = array[j-1];
					array[j-1] = array[j];
					array[j] = temp;
					flag = true; //若有数据交换,则flag为true
				}
			}
		}
	}
	public static void main(String[] args)
	{
		int[] array = {1, 5, 2, 8, 7, 9}; //定义数组
		BubbleSort.bubbleSort(array);
		for(int i = 0; i < array.length; i++) //输出排序后的数
		{
			System.out.println(array[i]);
		}
	}
}

总结:冒泡排序的基本思想是两两比较待排序相邻记录的关键字,如果反序则交换,直到没有反序的为止。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值