zoukankan      html  css  js  c++  java
  • Java-排序算法-冒泡排序

    一、冒泡排序的原理

     冒泡排序,就是从第一个元素开始,通过两两交换,使小的先冒出来,然后再走第二轮使次小的冒出来,直到最后一轮最大的冒出来,排序完成

    二、冒泡排序的伪代码实现: 

     1 bubblesort(A)
     2 {
     3    for i = 1 to length[A]
     4    {
     5        for j = length[A] to i+1
     6        {
     7            if A[j] < A[j-1]
     8            {
     9                 exchane A[j] and A[j-1];
    10            }
    11        }
    12    }
    13 }

    三、冒泡排序的Java源码实现

    import java.util.Comparator;
    public class BubbleSort {
    
        /**
         * 定义一个泛型的冒泡排序method
         * 学习如何用泛型和以及如何实现冒泡排序
         * 泛型的类型不能是基础类型的(比如int,double,char等),必须得是引用类型的(比如Integer、Double、Character)
         */
        
        public static <T> void bubbleSort(T[] t, Comparator<? super T> comparator){
            T temp = t[0];
            for(int i = 0; i < t.length-1; i ++)
            {
                for(int j = t.length-1; j >= i+1; j --)
                    if (comparator.compare(t[j-1], t[j]) > 0)
                    {
                        temp = t[j-1];
                        t[j-1] = t[j];
                        t[j] = temp;
                    }
            }
        }
        
        /**
         * @param args
         * main函数是用来做测试的。
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Integer[] ints = {2, 0, 5, 23, 1, 4, 8, 56, 19};
            bubbleSort(ints, new Comparator<Integer> () {
                public int compare(Integer o1, Integer o2){
                    return o1.intValue() - o2.intValue();
                }
            });
            for (int i:ints)
            {
                System.out.print(i + " ");
            }
            System.out.println();
        }
    
    }

    运行结果:

    0 1 2 4 5 8 19 23 56 

    四、复杂度分析

    O(N^2)

  • 相关阅读:
    Chp18: Hard
    内存泄漏 和 内存溢出
    Chp4: Trees and Graphs
    trie树--详解
    Tries
    Comparable & Comparator
    memory leak
    8个月从CS菜鸟到拿到Google Offer的经历+内推
    Word Ladder II
    Java垃圾回收机制
  • 原文地址:https://www.cnblogs.com/keke-xiaoxiami/p/4304841.html
Copyright © 2011-2022 走看看