排序算法之 Java冒泡算法


package net.qh.test.sort;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class Bubble {

public int[] sort(int[] arr){
  if ( arr == null || arr.length <= 1 ){
    return arr;
  }
  int length = arr.length;
  for(int i = 0;i < length;i++){
    for(int j = 0;j < length - i - 1; j++){
      if(arr[j] > arr[j + 1]){
        int temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;
      }
    }
  }
  return arr;
}

public static void main(String[] args){

  List<Integer> intList = new ArrayList<Integer>();
  for(int i = 0; i < 100000; i++){
    intList.add(i);
  }
  int[] arr = new int[intList.size()];
  for(int j = 0; j < arr.length; j++){
    arr[j] = intList.get(j);
  }
  for(int temp : arr){
    System.out.print(temp + ", ");
  }
  System.out.println("");
  long start = Calendar.getInstance().getTimeInMillis();
  arr = new Bubble().sort(arr);
  long end = Calendar.getInstance().getTimeInMillis();
  System.out.println("所需毫秒數" + (end - start));
  for(int temp : arr){
    System.out.print(temp + ", ");
  }
}

    /**
    1. 該排序算法是冒泡排序算法。
    2. 冒泡排序算法思想: 連續的掃描數組,每一次掃描,都會移動最大的數,慢慢接近於頂端。
    3. 使用: 冒泡排序最大的優點是簡單,一般情況下冒泡排序當做其他排序算法的范例來研究。
        除非出於某種原因不能使用快速排序,由需要一個簡單的小排序算法,就可以選擇使用冒泡排序。
    4. 冒泡排序算法的階: O(n^2), 是穩定排序。
    5. 實戰測試:4核CPU和8G內存下,對100000個整型元素的數組排序, 逆序需要 9132 毫秒, 有序需要:8327毫秒

    */

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM