快速排序QuickSort

2021-08-25 11:45:07 字數 716 閱讀 7540

原理:對於給定的一組記錄,選擇乙個基準元素,通常選擇第乙個元素或者最後乙個元素,通過一趟掃瞄,將待排序列分成兩部分,一部分比基準元素小,一部分大於等於基準元素,此時基準元素在其排好序後的正確位置,然後再用同樣的方法遞迴地排序劃分的兩部分,直到序列中的所有記錄均有序為止。

**:public class quicksort

i = low;

j = hight;

index = a[i]; // 用子表的第乙個記錄做基準

while (i < j)

while (i < j && a[i] < index)

i++;

if (i < j)

}a[i] = index;// 將基準數值替換回 a[i]

sort(a, low, i - 1); // 對低子表進行遞迴排序

sort(a, i + 1, hight); // 對高子表進行遞迴排序

public static void quicksort(int a)

public static void main(string args) ;

quicksort(a);

system.out.println(arrays.tostring(a));}}

原陣列: int a = ;

第一次排序後:[27, 38, 13, 49, 76, 97, 65, 49]

之後遞迴49之前陣列 與 49之後陣列

快速排序 QuickSort

快速排序通常用於排序的最佳的使用選擇,其期望執行時間為 o nlgn 能夠進行就地排序。最壞執行時間為 o n 2 演算法描述 分解 divide 陣列 a beg end 被劃分為兩個子陣列 a beg mid 1 和a mid 1 end 使得a beg mid 1 中的資料都小於 a mid ...

快速排序 quicksort

快速排序 quicksort 是分治法的典型例子,它的主要思想是將乙個待排序的陣列以陣列的某乙個元素x為軸,使這個軸的左側元素都比x大,而右側元素都比x小 從大到小排序 然後以這個x在變換後陣列的位置i分為左右兩個子陣列,再分別進行快速排序,直到子陣列中只有乙個元素為止。快速排序演算法如下 void...

快速排序 QuickSort

1,void quicksort int a,int low,int high 這個函式是排序的遞迴部分,mid就是已經確定的基準元素的位置。2,int partition int a,int low,int high 這個函式幹了兩件事 1 挑出來乙個基準元素 這裡選的是最後乙個作為基準 找它的正...