java中如何用冒泡发升序输出字母,Java实现冒泡排序算法

冒泡排序是什么

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法,它的复杂度为O(n²),这个算法属于大学课本上的基础知识。

它需要重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A、时间从早到晚)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也代表着该元素列已经排序完成了。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

冒泡排序的原理

1.首先是对相邻两个元素的比较,如果第一个比第二个大,就把他们俩的位置交换一下。

2.重复的对每一对相邻元素做上述操作,直到最后一对。于是最大的一个数就会排到最后。

3.针对出所有的元素重复上面两个步骤,但每次要排除最后一个已经排好序的那个元素。

4.如此重复,元素会越来越少,最终没有任何一堆数字需要比较。

冒泡排序实现

/***冒泡排序*/// 定义数组

int[] array = new int[]{22, 15, 66, 8, 32, 1, 54, 21, 11,6,48,3,34,12};

// 定义一个临时变量

int temp = 0;

// 外层循环控制数组排序共需要循环多少次(每次相邻的两个元素进行比较,只需要比较数组总元素个数-1次)

for (int i = 0; i < array.length - 1; i++) {

// 内层循环控制第i次排序需比较多少次

//(例如:第一次排序后会确定数组中最大的一个数,且不再参与比较。第二次再确定一个除最大数以外较大的数。以此类推)

// 所以每次循环(数组的长度-i-1)次数即可。

// 不可以使用(数组的长度-j-1),会导致循环提前结束而不计算数组中剩余元素的比较

for (int j = 0; j < array.length - i - 1; j++) {

// 相邻的两个元素进行比较,将较大的元素赋值给临时变量,从而实现换位操作

if (array[j] > array[j + 1]) {

temp = array[j];

array[j] = array[j + 1];

array[j + 1] = temp;

}

}

}

// 遍历排序后数组中的元素

for (int k = 0; k < array.length; k++) {

System.out.println(array[k]);

}

我们执行代码后,控制台按顺序输出了这些数字:

46e2f74004f9b40186385002fdb79978.png

简单的冒泡排序,到这里就演示完了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值