数据结构和算法-排序之冒泡排序

本文详细介绍了冒泡排序的基本思想和操作过程,通过实例展示了冒泡排序如何将无序数组逐步变为有序,同时提到在实际排序过程中若未发生交换可提前结束,提高效率。
摘要由CSDN通过智能技术生成

感谢尚硅谷韩顺平老师深入细致的讲解

冒泡排序(BUbble Sorting)的基本思想是:比如从小到大排序,通过对待排序序列从前向后,一次比较相邻元素的值,若发现后者比前者小则交换,使值较大的从前往后移动,就像水底的气泡一样逐渐往上冒泡。

思路:

原始数组:3, 9, -1, 10, 20

第一趟排序

    (1)  3, 9, -1, 10, 20  【3,9】

    (2)  3, -1, 9, 10, 20  【9,-1】  // 如果相邻的元素逆序就交换

    (3)  3, -1, 9, 10, 20 【9,10】

    (4)  3, -1, 9, 10, 20 【10,20】

    第一趟排序后最大的就到最后了

第二趟排序

    (1) -1, 3, 9, 10, 20【3,-1】 //交换

    (2) -1, 3, 9, 10, 20【3,9】

    (3) -1, 3, 9, 10, 20 【9,10】

    第二趟后倒数第二大的就在倒数第二个位置了

第三趟排序

    (1) -1, 3, 9, 10, 20

    (2) -1, 3, 9, 10, 20

第四趟排序

    (1) -1, 3, 9, 10, 20

由上可见,如果在一次循环中没有发生交换,那么可以认为数组已经是有序的了,就可以提前结束后面的循环。

public static void bubbleSort(int[] arr) {
	// 冒泡排序 的时间复杂度 O(n^2), 自己写出
	int temp = 0; // 临时变量
	boolean flag 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值