排序1_冒泡排序

冒泡排序简单理解

冒泡排序 是 排序 中比较经典的一种算法。算法思想 简单可以理解为 元素 冒泡 至 指定位置(一般指末尾),

  • 对于N个元素,需要进行N - 1 轮排序,即for(int i = a.length - 1 ;i>0;i--){...}

  • 每轮确定 一个 当前序列 的 最大值元素a[0 ~ i - 1],放到 当前序列的末尾a[i]

举栗,对于含有6个元素的 a[]

第一轮,从a[0] ~ a[5] 中 冒出 最大的 到 a[5],第一轮结束,a[5]确定

第二轮,从a[0] ~ a[4] 中 冒出 最大的 到 a[4],第二轮结束,a[4]确定

确定当前序列最大值元素 的方法:相邻位置的元素比较值大小,如果前面位置的元素 大于 后面位置的元素值,就 冒泡,交换值

一轮冒泡结束,最大元素到了 序列的末尾,

下轮冒泡的时候,就不用再 和 确定位置 的 元素比较

代码实现
  • Bubble工具类
package xiaosi.bili.one;

public class Bubble {
	

	/*
	 * sort()方法
	 */
	public static void sort(Comparable[] a)  {
		for(int i = a.length - 1;i > 0;i--) {
			for(int j = 0;j < i;j++) {
				if(gretter(a[j], a[j+1])) {
					exch(a, j, j + 1);
				}
				
				
			}
		}
	}
	/*
	 * greater()方法比较大小
	 */
	public static Boolean gretter(Comparable a, Comparable b) {
		//Compareable接口提供的compareTo()方法
		return a.compareTo(b) > 0;
	}
	/*
	 * exch()方法交换位置
	 */
	public static void  exch(Comparable[] a,int i, int j) {
		Comparable temp;
		temp = a[i];
		a[i] = a[j];
		a[j] = temp;
		
	}
}

  • TestBubbleSort测试类
package xiaosi.bili.one;

import java.util.Arrays;

public class TestBubbleSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//注意Compareable 是 比较对象类型,基本类型需要装箱
		Integer a[] = {6,5,9,7,1,3,6,9};
		Bubble.sort(a);
	
		System.out.println("冒泡排序后的:" + Arrays.toString(a));
		//冒泡排序后的:[1, 3, 5, 6, 6, 7, 9, 9]

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scl、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值