冒泡排序(升序和降序)12/14

本文介绍了冒泡排序的基本思想,它通过比较相邻元素并交换逆序对,使值较大的元素逐渐‘冒泡’到序列后部。文章还探讨了冒泡排序的优化策略,即当某趟排序未发生交换时可提前终止排序。提供了使用Java实现的冒泡排序代码,支持升序和降序排列,并利用flag进行优化。
摘要由CSDN通过智能技术生成

基本思想:通过对排序序列从前到后(从下标较小的元素开始),依次比较相邻的元素,如果发现逆序的交换,值较大的元素逐渐从前移到后部,就像水底的气泡一样逐渐向上冒。

 

冒泡排序(如果从小到大)

  1. 趟数:一共进行数组大小-1次循环
  2. 每一趟排序的次数都在逐渐减少
  3. 每一趟都找出最大的数
  4. 优化:如果某趟排序中,没有发生交换,可以提前结束冒泡排序。

以下代码为:通过冒泡排序思想进行升降序排列的方法(封装) 以及通过flag进进行优化

package bTest;

import java.text.SimpleDateFormat;
import java.util.Date;

public class BubbleSort {

	public static void main(String[] args) {

		int arr[] = { -2, -1, 5, 2, 8, 20 };

		Date date1 = new Date();
		final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String date1Str = simpleDateFormat.format(date1);
		System.out.println("排序前的时间:" + date1Str);

		int arr1[] = new int[80000]; // 8万数据需要20秒左右 18万40秒左右;
		for (int
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值