快速排序是平均速度最快的排序演算法,他的平均時間複雜度 n*log n)
快速排序採用分治法來進行排序,首先先給出乙個陣列,在一開始隨意選擇乙個數pivot,已pivot作為這個陣列的分界點,把大於pivot的數放在右邊,小於pivot的數放在左邊,然後在已pivot的兩邊分界點,右進行一次上一次的操作,這樣就能達到排序的目的了,
好了,我們來看一下**。
private
static
void partition(int array,int left,int right)
while (array[j]>pivot)
if (i<=j)
}
//第一次中間點比較完之後,就要開始比較另外兩邊了
if (leftarray, left, j);
}if (iarray, i, right);}}
這段**就是快速排序了,我們對這個陣列進行了,分治法,首先把乙個陣列分成兩個陣列,兩個陣列要中間值對兩個數比較完了之後又會把這和兩個交換完的陣列分成4個陣列,進行找中間值,比較操作。
我們來看一下結果
排序 快速排序(java實現)
快速排序是一種非常高效的排序演算法,它採用了 分而治之 的思想,把大的拆分成小的,小的再拆分為更小的。其原理如下 對於給定一組記錄,通過一趟排序後,將原序列分為兩部分,其中前一部分的所有記錄都比後一部分的所有記錄小,然後再依次對前後兩部分的記錄進行快速排序,遞迴該過程,直到序列中所有的記錄均為有序為...
Java實現快速排序
package com.handy.ds public class quicksort for int i 0 i a.length i system.out.print a i system.out.println quicksort qs new quicksort qs.quitsort a,...
快速排序實現(Java)
快速排序排序效率在同為o n logn 的幾種排序方法中效率較高。該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。雖然快速排序稱為分治法,但分治法這三個字顯然無法...