快速排序簡單實現
/**
* 將陣列的某一段元素進行劃分,小的在左邊,大的在右邊
**@param a 陣列
*@param start 開始的位置
*@param end 結束的位置
*@return 基準值的位置
*/public
static
intdivide(int a, int start, int end)
//上面的while迴圈結束時,就說明當前的a[start]的值比基準值大,應與基準值進行交換
if (start < end)
while (start < end && a[end] >= base)
//上面的while迴圈結束時,就說明當前的a[end]的值比基準值小,應與基準值進行交換
if (start < end)
}//這裡返回start或者end皆可,此時的start和end都為基準值所在的位置
return end;
}/**
* 排序
**@param a 陣列
*@param start 開始的位置
*@param end 結束的位置
*/public
static
void
sort(int a, int start, int end)
}@test
public
void
sort()
long start = system.currenttimemillis();
quicksort.sort(ints,0,ints.length-1);
// system.out.println(arrays.tostring(ints));
system.out.println(system.currenttimemillis() - start);
}
演算法java 簡單實現快速排序
int arr int frist 0 intlast 9 第一次迴圈,frist指向arr 0 last指向arr 9 首先從右開始尋找小於基準數6的元素,last指向arr 7 5,frist從左尋找大於基準數6的元素,指向arr 3 7,交換兩個位置的值 int arr int frist 3...
2015 6 9 快速排序的java簡單實現
快速排序的思想不知道怎麼描述,那麼就直接貼 吧。做個筆記。public class quicksort sort a,0,a.length 1 for int i 0 i right return if left 0 right a.length 1 return int i left int j ...
排序 快速排序(java實現)
快速排序是一種非常高效的排序演算法,它採用了 分而治之 的思想,把大的拆分成小的,小的再拆分為更小的。其原理如下 對於給定一組記錄,通過一趟排序後,將原序列分為兩部分,其中前一部分的所有記錄都比後一部分的所有記錄小,然後再依次對前後兩部分的記錄進行快速排序,遞迴該過程,直到序列中所有的記錄均為有序為...