資料結構與演算法之快速排序

2021-07-28 22:30:51 字數 1003 閱讀 2661

快速排序是c.r.a.hoare於2023年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法(divide-and-conquermethod)。

該方法的基本思想是:

1.先從數列中取出乙個數作為基準數。

2.分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。

3.再對左右區間重複第二步,直到各區間只有乙個數。

時間複雜度:o(n*logn)

1. c語言實現

int quicksort(int  v, int left, int right)

v[low] = v[high];

while(low < high && v[low] < key)

v[high] = v[low];

}v[low] = key;

quicksort(v,left,low-1);

quicksort(v,low+1,right);

}}

2. python語言實現

def quicksort(list,left,right):

if left < right:

key = list[left]

low = left

high = right

while low < high:

while (low < high ) and list[high] > key:

high = (high -1)

list[low] = list[high]

while (low < high ) and list[low] < key:

low = (low + 1)

list[high] = list[low]

v[low] =key

quicksort(list,left,low-1)

quicksort(list,low+1,right)

資料結構與演算法之快速排序

1.快速排序的 實現如下 include using namespace std template void sort t data,size t head,size t tail templatesize t partition t data,size t head,size t tail tem...

資料結構與演算法 排序演算法之六 快速排序

一 快速排序 排序演算法中的奧斯卡,諾貝爾獎,當屬快速排序!快速排序是20世紀十大演算法之一!1 基本思想 前面提到氣泡排序,它是一種交換排序,堪稱最慢的排序演算法。可是,物極必反,快速排序是氣泡排序的公升級加強版,同屬於交換排序類。以 空間 換時間,快速排序不是相鄰元素的交換,而是加大了比較和交換...

資料結構排序演算法之快速排序

快速排序 includeusing namespace std void swap int arr,int i,int j void quicksort int arr,int left,int right arr i temp quicksort arr,left,i 1 quicksort ar...