部分內容摘自:
快速排序步驟為:
從數列中挑出乙個元素,稱為 "基準"(pivot),
重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。在這個分割槽退出之後,該基準就處於數列的中間位置。這個稱為分割槽(partition)操作。
遞迴地(recursive)把小於基準值元素的子數列和大於基準值元素的子數列排序。
public class quicksort
private static > int partition(e array, int begin, int end)
}swap(array, index, end);
return (index);
}private static > void qsort(e array, int begin, int end)
}public static > void sort(e array)
實現**快速排序。
以下為測試類
public class sortingtest
system.out.println(srcarr.length);
long t1 = system.currenttimemillis();
quicksort.sort(srcarr);
long t2 = system.currenttimemillis();
system.out.println("");
system.out.println("***********************************="+(t2-t1));
}}
對10萬數字資料排序,用了幾十毫秒,這比起冒泡,選擇,插入等排序效率高非常多。 Java排序演算法 快速排序
一.思想 對氣泡排序演算法的一種改進。通過一趟排序將排序的資料分割成兩個部分,其中一部分的所有資料都比另一部分的所有資料都要小,然後再按此方法對這兩部分分別再進行快速排序,依次類推。實現為 開始時先設兩個變數i start,j end 以第乙個元素作為中間點,pivot num i 以j 的形式從後...
java排序演算法 快速排序
陣列 2,6,3,6,5,9,1 輸出 1 2 3 5 6 6 9 private static void paixu int arrs,int h,int e while arrs x arrs e 交換值 int m m arrs h arrs h arrs e arrs e m 2,6,3,6...
java快速排序演算法
package com.head.swift 快速排序 public class main sorts a,0,a.length 1 對陣列a進行公升序排列 輸出陣列 for int i a public static void sorts int a int left int right if i...