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毫秒
*/
}