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();
    }

    /**
     * 
     * 冒泡排序 
* 两两比较取最值向前或向后移动,多次重复比较后,得到顺序排列。 *
*/ 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)); } } /** * * 单例模式
* * 外界无法通过新建对象的方式实例化对象,而是通过调用静态方法实现唯一的实例化对象 *
*/ 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; } /** * 交换两个变量值算法
* * 不初始化第三个变量交换两个变量的值 *
*/ 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]; } }

 

转载于:https://www.cnblogs.com/ocean-san/p/4095755.html

你可能感兴趣的:(java)