Java排序演算法比較

2021-08-23 13:05:42 字數 1758 閱讀 8918

public class sort

public int partition(int a, int low, int high)

} swap(a, low, p_pos);

return p_pos;

} public void quicksort(int a, int low, int high)

public static void main(string args) ;

int temp;

//選擇排序法(selection sort)

long begin = system.currenttimemillis();

for (int k = 0; k < 1000000; k++)

} }

} long end = system.currenttimemillis();

system.out.println("選擇法用時為:" + (end - begin));

//列印排序好的結果

for (int i = 0; i < vec.length; i++)

//  氣泡排序法(bubble sort)

begin = system.currenttimemillis();

for (int k = 0; k < 1000000; k++)

} }

} end = system.currenttimemillis();

system.out.println("冒泡法用時為:" + (end - begin));

//列印排序好的結果

for (int i = 0; i < vec.length; i++)

//插入排序法(insertion sort)

begin = system.currenttimemillis();

for (int k = 0; k < 1000000; k++)

} vec[j] = vec[i];

} }

end = system.currenttimemillis();

system.out.println("插入法用時為:" + (end - begin));

//列印排序好的結果

for (int i = 0; i < vec.length; i++)

//快速排序法(quick sort)

sort s = new sort();

begin = system.currenttimemillis();

for (int k = 0; k < 1000000; k++)

end = system.currenttimemillis();

system.out.println("快速法用時為:" + (end - begin));

//列印排序好的結果

for (int i = 0; i < vec.length; i++)

} }

以下是執行結果:

選擇法用時為:234

56 47

37 23

19 -5

冒泡法用時為:172

56 47

37 23

19 -5

插入法用時為:78

56 47

37 23

19 -5

快速法用時為:297

56 47

37 23

19 -5  

排序演算法比較

本章中已經研究並仔細分析了多個內部排序方法。對於這些內部排序方法之間的比較,主要從以下幾個方面綜合考慮 時間複雜度 空間複雜度 演算法穩定性 演算法簡單性 待排序記錄數 n的大小 記錄本身的資訊量等。選擇n 個整數組成一些隨機排序,各種內部排序方法的實際時間如圖 7 10 所示。從時間複雜度看,所有...

排序演算法比較

排序方法 最好時間 平均時間 最壞時間 輔助儲存 穩定性備註 簡單選擇排序 o n2 o n2 o n2 o 1 不穩定n小時較好 直接插入排序 o n o n2 o n2 o 1 穩定大部分已有序時較好 氣泡排序 o n o n2 o n2 o 1 穩定n小時較好 希爾排序 o n o nlogn...

比較排序演算法

常用的比較排序演算法有 直接插入排序,希爾排序,選擇排序,堆排序,氣泡排序,快速排序,歸併排序等。它們的時間複雜度及空間複雜度為 實現 如下 includeusing namespace std include include 插入排序 void insertsort int a,size t si...