java冒泡排序从小到大,Java冒泡排序法
本文为新手介绍JAVA冒泡排序的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
如何解决写爬虫IP受阻的问题?立即使用。
冒泡排序是计算机科学领域中一种简单的排序算法。
它重复地访问需要排序的元素,依次比较两个相邻的元素,如果元素的顺序(例如从大到小,从A到Z的首字母)是错误的,则互换元素的位置。
重复访问元素,直到相邻位置没有需要交换位置的元素,排序完成。
这种算法的名字来源于较大的元素会通过交换慢慢“浮”到数列的顶端(按升序或降序),就像碳酸饮料中二氧化碳的气泡最终会浮到顶端一样,因此得名“气泡排序”。
看理论可能有点混乱,没关系。接下来我们来详细了解一下冒泡排序是如何比较排序的~
排序思路
比较,从小到大排序,小的向前换。
I代表从头到尾遍历循环数据。
实现冒泡排序
创建类:BubbleSort.java
包cn . tedu . array;导入Java . util . arrays;/* *此类用于完成冒泡排序*/公共类TestBubbleSort {
公共静态void main(String[] args) {
//1.创建一个无序数组
int[] a={27,96,73,25,21 };
//2.调用方法()完成排序
int[] newA=方法(a);
system . out . println( sorted: arrays . tostring(newA));
}
公共静态int[]方法(int[] a) {
//1.外环,控制比较的轮数,假设有N个数,最多比较n-1次。
//开始值:1结束值:=a.length-1变化:
//控制循环执行的次数,比如5个数字。最多比较4轮,=a.length-1,最多得到4,即[1,4]4次。
for(int I=1;I=a . length-1;i ) {
system . out . println( I 轮:);
//2.内层循环:相邻比较和交换位置。
for(int j=0;j . a . length-I;j ) {
//相邻比较,a[j]代表前一个元素,a[j 1]代表后一个元素。
if(a[j] a[j 1]) {
//交换数据
int t=a[j];
a[j]=a[j 1];
a[j ^ 1]=t;
//system . out . println( arrays . tostring(a)在(j 1)比较交换之后);
}
}
system . out . println( I 轮的结果: arrays . tostring(a));
}
返回a;//返回排序后的数组a。
}}其实我们还可以优化现有的排序:
1:优化:前几轮排序产生的最大值不需要参与后面几轮的比较。经过几轮排序,会产生几个不参与比较的值。I轮产生I值,所以需要-i。
2:优化:我们需要设置一个量,用来检测当前一轮相互比较中是否存在元素的交换位置。如果有交换,说明序列还没有排好,下一轮比较会把标志改成true。但如果本轮所有元素都已经相互比较过,没有交换位置,则说明序列已经安排好了,下一轮比较就没有必要了。只需返回end方法。
相关免费学习推荐:java基础教程以上是新手小白如何学习JAVA冒泡排序的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。