Java中数组的冒泡排序

1.为什么需要冒泡排序

        在程序设计中,经常需要将一组数列进行排序,这样更加方便统计与查询。程序常用的排序方法有冒泡排序、选择排序和反转排序。这篇文章将讲解冒泡排序

        冒泡排序是最常用的数组排序算法之一,它排序数组元素的过程总是将较小的数往前放,将较大的数往后放,这个过程有点类似水中的气泡往上升的动作,所以称之为冒泡排序。

2.冒泡排序的基本思想

        冒泡排序的基本思想就是比对两个相邻的元素值,如果满足条件就交换两个元素,把较小的值往前移,较大的致往后移动。(也就是满足条件后,交换两个值的位置),这样较小的元素就像气泡从底部上升到顶部。

3.算法图解

        算法示例冒泡算法由双层循环实现,其中外层循环用于控制排序轮数,一般为要排序的数组长度减1次因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序了。而内层循环主要于对比数组中每个邻近元素的大小,以确定是否交换位置,对比和交换次数随排序轮数而减少。例如,6个元素的数组,在排序过程中每一次循环的排序过程和结果

         第1轮外层循环时把最大的元素值63移动到了最后面(相应地,比64小的元素向前移动,类似气泡上升);第2轮外层循环不再对比最后一个元素值64,因为它已经被确认为最大(不需要上升),应该放在最后,需要对比和移动的是其他剩余元素,这次将元素24移动到了64的前一个位置。其他循环将以此类推,继续完成排序任务。

4.算法实现

public class BubbleSort {
	public static void main(String[] args) {
		// 创建一个数组,这个数组元素是乱序的
		int[] array = { 64, 4, 24, 1, 3, 13 };
		for (int i = 1; i < array.length; i++) {
			// 比较相邻两个元素,较大的数往后冒泡
			for (int j = 0; j < array.length - i; j++) {
				if (array[j] > array[j + 1]) {
					int temp = array[j]; // 把第一个元素值保存到临时变量中
					array[j] = array[j + 1]; // 把第二个元素值保存到第一个元素单元中
					array[j + 1] = temp; // 把临时变量(也就是第一个元素原值)保存到第二个元素中
				}
			}
		}
		for (int i : array) { // 遍历数组
			System.out.print(" >" + i); // 输出每个数组元素值
		}
	}
}

        运行结果如下:

>1 >3 >4 >13 >24 >64

从实例的运行结果来看,数组中的元素已经按从小到大的顺序排列好了。冒泡排序的主要思想就是:把相邻两个元素进行比较,如满足一定条件则进行交换(如判断大小或日期前后等),每次循环都将最大(或最小)的元素排在最后,下一次循环是对数组中其他的元素进行类似操作。

  • 17
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

界心_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值