<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. java語言

    用Java寫一個冒泡排序方法

    時間:2025-02-06 00:59:08 java語言 我要投稿
    • 相關推薦

    用Java寫一個冒泡排序方法

      引導語:冒泡排序也是Java語言面試可能會出現的題目,以下是百分網小編分享給大家的用Java寫一個冒泡排序方法,歡迎閱讀學習!

      用Java寫一個冒泡排序

      答:冒泡排序幾乎是個程序員都寫得出來,但是面試的時候如何寫一個逼格高的冒泡排序卻不是每個人都能做到,下面提供一個參考代碼:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import java.util.Comparator;
     
    /**
     * 排序器接口(策略模式: 將算法封裝到具有共同接口的獨立的類中使得它們可以相互替換)
     * @author駱昊
     *
     */
    public interface Sorter {
     
       /**
        * 排序
        * @param list 待排序的數組
        */
       public <T extends Comparable<T>> void sort(T[] list);
     
       /**
        * 排序
        * @param list 待排序的數組
        * @param comp 比較兩個對象的比較器
        */
       public <T> void sort(T[] list, Comparator<T> comp);
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import java.util.Comparator;
     
    /**
     * 冒泡排序
     *
     * @author駱昊
     *
     */
    public class BubbleSorter implements Sorter {
     
        @Override
        public <T extends Comparable<T>> void sort(T[] list) {
            boolean swapped = true;
            for (int i = 1, len = list.length; i < len && swapped; ++i) {
                swapped = false;
                for (int j = 0; j < len - i; ++j) {
                    if (list[j].compareTo(list[j + 1]) > 0) {
                        T temp = list[j];
                        list[j] = list[j + 1];
                        list[j + 1] = temp;
                        swapped = true;
                    }
                }
            }
        }
     
        @Override
        public <T> void sort(T[] list, Comparator<T> comp) {
            boolean swapped = true;
            for (int i = 1, len = list.length; i < len && swapped; ++i) {
                swapped = false;
                for (int j = 0; j < len - i; ++j) {
                    if (comp.compare(list[j], list[j + 1]) > 0) {
                        T temp = list[j];
                        list[j] = list[j + 1];
                        list[j + 1] = temp;
                        swapped = true;
                    }
                }
            }
        }
    }

    【用Java寫一個冒泡排序方法】相關文章:

    冒泡排序算法原理及JAVA實現代碼方法10-16

    C語言的冒泡排序方法08-22

    冒泡排序的原理以及java代碼實現08-17

    java的常見排序方法08-31

    JAVA常用4種排序方法09-26

    用java重載的方法09-19

    c#冒泡排序算法08-15

    經典c語言冒泡排序法08-08

    C語言經典冒泡排序法09-24

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人