首页 > 代码库 > java排序

java排序

冒泡排序:

初始状态基本有序时使用此种方式尤嘉。

/** *  */package com.san.ocean;import java.util.Arrays;/** * @author ocean *  */public class HelloWorld {    /**     * @param args     */    public static void main(String[] args) {        HelloWorld hw = new HelloWorld();        hw.change();    }    /**     *      * 冒泡排序 <br>     * 两两比较取最值向前或向后移动,多次重复比较后,得到顺序排列。     *      */    public void change() {        int[] arr = new int[] { 2, 1, 3, 5, 4, 6 };        for (int i = 0; i < arr.length; i++) {            for (int j = arr.length - 1; j > 0; j--) {                // 升序                // if (arr[j] < arr[j - 1])                // 降序                if (arr[j] > arr[j - 1])                    // Java只有值传递                    SingleTwo.getSingleTwo().swap(arr, j, j - 1);            }        }        System.out.println(Arrays.toString(arr));    }}/** *  * 单例模式<br> *  * 外界无法通过新建对象的方式实例化对象,而是通过调用静态方法实现唯一的实例化对象 *  */class SingleTwo {    /**     *      * 私有的静态变量     */    private static SingleTwo so = null;    /**     *      * 私有构造器     */    private SingleTwo() {    }    /**     *      *      * 添加同步锁     */    public static SingleTwo getSingleTwo() {        if (null == so) {            synchronized (SingleTwo.class) {                if (so == null)                    so = new SingleTwo();            }        }        return so;    }    /**     * 交换两个变量值算法<br>     *      * 不初始化第三个变量交换两个变量的值     *      */    public void swap(int[] arr, int i, int j) {        arr[i] = arr[i] - arr[j];        arr[j] = arr[i] + arr[j];        arr[i] = arr[j] - arr[i];    }}

 

java排序