快速排序演算法2

2021-05-25 12:59:45 字數 904 閱讀 4537

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 可以說是在所有交換排序中時間複雜度最低的乙個 但是在個別情況下也會達到和氣泡排序同等的時間複雜度,比如待排序的元素中用於排序的關鍵字全部相等,或者已經按照完全有序排列,這時候快速...