博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java经典算法:冒泡排序例子
阅读量:7228 次
发布时间:2019-06-29

本文共 1275 字,大约阅读时间需要 4 分钟。

hot3.png

本文主要讲Java经典算法之冒泡排序。

  问题:

  有一数组a,长度为n,把数组中的元素从小到大重新排列

       思路:

        从0到n-1,两两比较数组中的元素,如果前者大于后者,则交换之(如a[0]>a[1],则交换a[0]和a[1])。作一趟冒泡排序后,最大值就在最后一个位置a[n-1]上了。然后对余下的0到n-2个元素作第二趟冒泡排序,次最大值就去到倒数第二个位置a[n-2]上了,如此类推。 

       例如:

       对10,-3,5,34,-34,5,0,9进行排序

  第一趟:-3,5,10,-34,5,0,9,34

  第二趟:-3,5,-34,5,0,9,10,34

  第三趟:-3,-34,5,5,0,9,10,34

  第四趟:-34,-3,5,0,5,9,10,34

  第五趟:-34,-3,0,5,5,9,10,34

  这时不再发生交换,排序结束。

       核心代码:

public class BubbleSort {    /*     * Java冒泡排序例子     */    public static void main(String[] args) {        int[] array = {10,-3,5,34,-34,5,0,9}; //测试数组        sort(array);         for(int el : array) {             System.out.print(el + " ");         }     }    static void sort(int[] array) {         int length = array.length;           int temp;            //临时存储变量        boolean isSort;        for(int i = 1;i < length; i++){            isSort = false;            for(int j = 0; j < length-i ; j++){                if(array[j] > array[j+1]){                    //交换                    temp = array[j];                    array[j] = array[j+1];                    array[j+1] = temp;                    isSort = true;                }            }            if(!isSort) break; ///break是结束整个循环体,continue是结束单次循环,如果没有发生交换,则退出循环         }    }}

转载于:https://my.oschina.net/mjhuang/blog/271663

你可能感兴趣的文章
JS易混淆的方法整理
查看>>
iOS下JS与OC互相调用(八)--Cordova详解+实战
查看>>
七牛实时音视频云视频连线demo(web部分)
查看>>
Netty源码分析(六):SelectedSelectionKeySetSelector
查看>>
forEach,for...of,map与asycn/await
查看>>
springboot 2 Hikari 多数据源配置问题(dataSourceClassName or jdbcUrl is required)
查看>>
Golang数据库编程之GORM模型定义与数据库迁移
查看>>
Oracle redo解析之-4、rowid的计算
查看>>
Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统
查看>>
java 颠倒整数
查看>>
Python入门教程100天:Day05-练习总结
查看>>
环境搭建,8种基本类型,Static,package和import,log4j
查看>>
即将到来的 Debian 10 Buster 发布版的新特点
查看>>
iOS 头部视图下拉变大
查看>>
Disruptor并发框架
查看>>
react-hooks 实现简单的评论list
查看>>
【多图警告】学会JavaScript测试你就是同行中最亮的仔(妹)
查看>>
19-04-25
查看>>
一个JAVA程序员成长之路分享
查看>>
30K iOS程序员的简述:如何快速进阶成为高级开发人员
查看>>