package com.mianshi;
/*** describe: 快速排序演算法2(排序結果從小到大)
* create on: 2011-05-25
* @author sylor.liu
* @version 1.0
* @since jdk1.6
*/public class quicksort2
// 對資料進行快速排序
private void qsort(int a, int low,int high)
if(high - low ==1 )
return;
}// 將該段資料的值進行互換,使左邊的值小於point 右邊的值大於point 且a[left-1]從左邊起第乙個大於point值
while(left < right)
left++;
}while(left < right&& right > low)
right--;
}swap(a,left,right);
}// 左邊起第乙個大於point值a[left-1] 與a[low]互換
swap(a,low,left-1);
// 對左半段排序
qsort(a,low,left-1);
// 對右半段排序
qsort(a,left ,high);
/*** @param args
*/public static void main(string args) ;
quicksort2 qs = new quicksort2();
qs.qsort(a,0,a.length - 1);
for (int i = 0; i < a.length; i++)
system.out.println();}}
排序演算法(2)快速排序
採用分治思想 1 從序列中挑出乙個元素作為 基準 privot 2 把所有比基準小的元素放在基準前面,把所有比基準大的元素放在基準後面,這個操作稱為 分割槽 3 對每個分割槽遞迴的進行 1 2 遞迴結束的條件是序列的大小是0或1 分類 內部比較排序 資料結構 陣列 最差時間複雜度 每次選取的基準都是...
快速排序2(演算法)
快速排序 1.核心思想 2.思路 3.模板 4.例題 1.核心思想 分治 分治 字面上的解釋是 分而治之 就是把乙個複雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題 直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合併,這個技巧是很多高效演算法的基礎。2.思路 1 ...
排序演算法 2 快速排序 Quick Sort
相比於氣泡排序演算法,快速排序要快的多,一般情況下氣泡排序的時間複雜度是o n 而快速排序平均時間複雜度為o nlogn 可以說是在所有交換排序中時間複雜度最低的乙個 但是在個別情況下也會達到和氣泡排序同等的時間複雜度,比如待排序的元素中用於排序的關鍵字全部相等,或者已經按照完全有序排列,這時候快速...