美文网首页
java 12 -- 冒泡排序法

java 12 -- 冒泡排序法

作者: 半碗鱼汤 | 来源:发表于2019-10-29 16:53 被阅读0次

一、代码

        int []a={1,2,7,4,8,2,5};
        System.out.println("排序之前:");
        for (int i : a) {
            System.out.print(i+"\t");
        }

        //冒泡排序实现
        for(int i=0;i<a.length-1;i++){
            for(int j=0;j<a.length-i-1;j++){
                if(a[j]>a[j+1]){
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }

        System.out.println("\n排序之后:");
        for (int i : a) {
            System.out.print(i+"\t");
        }

二、使用场景

现在有一个 List ,里面的元素要根据时间从小到大排好序,当然时间可能为 null,如果为空,则放到最前,代码如下:

        List<String> list = new ArrayList<>();
        list.add("2016");
        list.add("2013");
        list.add("2015");
        list.add(null);
        list.add(null);
        list.add(null);
        list.add("2017");
        list.add("2018");
        list.add(null);
        list.add("2017");
        list.add("2011");
        list.add("2012");

        System.out.println("排序之前:");
        for (String i : list) {
            System.out.print(i + "\t");
        }

        DateFormat dateFormat = new SimpleDateFormat("yyyy");
        //冒泡排序实现
        for (int i = 0; i < list.size() - 1; i++) {
            for (int j = 0; j < list.size() - i - 1; j++) {

                String dateStr1 = list.get(j);
                String dateStr2 = list.get(j + 1);

                Date date1 = null;
                Date date2 = null;

                if (dateStr1 == null || "".equals(dateStr1)) {
                    dateStr1 = "0000";
                }
                if (dateStr2 == null || "".equals(dateStr2)) {
                    dateStr2 = "0000";
                }

                try {
                    date1 = dateFormat.parse(dateStr1);
                    date2 = dateFormat.parse(dateStr2);
                } catch (ParseException e) {
                    e.printStackTrace();
                }

                if (date1 != null && date2 != null) {
                    if (date1.getTime() > date2.getTime()) {
                        Collections.swap(list, j, j + 1);
                    }
                }
            }
        }

        System.out.println("\n排序之后:");
        for (String i : list) {
            System.out.print(i + "\t");
        }

其中的 Collections.swap(list, j, j + 1); 可以交换 List 中两个元素的位置

三、原理

比较数组中相邻两个元素,将大的或小的值交换到右端。

相关文章

  • java 12 -- 冒泡排序法

    一、代码 二、使用场景 现在有一个 List ,里面的元素要根据时间从小到大排好序,当然时间可能为 null,如果...

  • 冒泡排序法C

    xcode冒泡排序法 下载冒泡排序。

  • 各种排序方法

    冒泡排序法 选择排序法 链表排序法 qsort()函数排序法

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • JAVA冒泡法排序

    要求:写一个冒泡法程序,给10个杂乱无章的数字,按照从小到大的顺序排列出来 冒泡排序的原理:轻的上浮,重的下降,相...

  • PHP四种基础算法详解

    需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。 1、冒泡...

  • 排序算法篇_快速排序法

      快速排序(Quick Sort)法和冒泡排序法类似,都是基于交换排序思想的。快速排序对冒泡排序法进行了改进,从...

  • iOS常见算法

    升序算法:用冒泡排序法 选择排序法 快速排序

  • 聪聪工作室---JAVA入门小程序---生成随机数组并进行排序

    我现在用的是冒泡排序法: import java.util.Random; public class Order ...

网友评论

      本文标题:java 12 -- 冒泡排序法

      本文链接:https://www.haomeiwen.com/subject/tyegvctx.html