十大排序演算法 快速排序

2021-10-02 13:25:05 字數 953 閱讀 5569

原理:從數列中挑出乙個元素,稱為 「基準」(pivot)。重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面(相同的數可以到任一邊)。在這個分割槽退出之後,該基準就處於數列的中間位置。這個稱為分割槽(partition)操作;

遞迴地(recursive)把小於基準值元素的子數列和大於基準值元素的子數列排序;

邏輯**

public

class

quicksort

;quick

(arr,

0,arr.length-1)

; utils.

printarr

(arr);}

static

void

quick

(int

arr,

int left,

int right)

//從左邊開始查詢大於基準值的數

while

(i < j && arr[i]

<= temp)

if(i < j)

}//交換基準值和最終位置下標的對應的數

arr[left]

= arr[i]

; arr[i]

=temp;

//遞迴

quick

(arr,left,i-1)

;quick

(arr,i+

1,right);}

}

2.演示圖:總結

時間複雜度(平均)

時間複雜度(最好)

時間複雜度(最壞)

空間複雜度

穩定性o(nlog2n)

o(nlog2n)

o(n²)

o(nlog2n)

不穩定

十大排序演算法之快速排序

簡單排序 插入排序 選擇排序 氣泡排序 必學 分治排序 快速排序 歸併排序 必學 分配排序 桶排序 基數排序 樹狀排序 堆排序 必學 其他 計數排序 必學 希爾排序 原理 核心思想是通過乙個支點進行資料拆分,左邊的資料小於這個支點,右邊的資料大於支點,然後把左邊和右邊的做一次遞迴,直到遞迴結束。ph...

十大排序演算法

1.非線性時間類排序 時間複雜度未突破 0 nlog 2n 不穩定的四個排序演算法 選擇排序 0 n2 希爾排序 0 n1.3 希爾排序實現python 快速排序 0 n log2 n 0 nlog 2n 0 nlog 2 n 快速排序實現c python 堆排序 0 n log2 n 0 nlog...

十大排序演算法

排序規則 從左至右依次增大 一 基於比較的排序演算法 插入排序 逐個遍歷未排序序列,將其在已排序序列中從右到左比較,直到遇到比自己小的數,然後將元素插入到那個數的後面,有序序列從左向右生長。選擇排序 在未排序序列中選擇最小的元素,將其插入到已排序序列的末尾,有序序列從左向右生長。氣泡排序 從左至右逐...