python排序演算法的實現 快速排序

2022-02-21 23:28:28 字數 988 閱讀 7184

1、 演算法描述:

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

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

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

2、python**

#

!/usr/bin/python

#-*- coding: utf-8 -*-

defsub_sort(array,low,high):

key =array[low]

while low while low < high and array[high] >=key:

high -= 1

while low < high and array[high] array[low] =array[high]

low += 1array[high] =array[low]

array[low] =key

return

lowdef

quick_sort(array,low,high):

if low key_index =sub_sort(array,low,high)

quick_sort(array,low,key_index)

quick_sort(array,key_index+1,high)

if__name__ == '

__main__':

array = [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3]

print

array

quick_sort(array,0,len(array)-1)

print array

結果:[8, 10, 9, 6, 4, 16, 5, 13, 26, 18, 2, 45, 34, 23, 1, 7, 3]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 16, 18, 23, 26, 34, 45]

排序演算法 快速排序Python實現

coding utf 8 file quick sort.py author zhang san time 2020 7 17 18 25 des 快速排序 每次選擇乙個pivot,然後以這個pivot為中心,兩邊分別存放比其大或者小的值,依次 迭代進行劃分,最終完成排序 這裡一定要注意指標滑動的方...

演算法 排序 python 實現 快速排序

主要分為兩個子演算法,partition a,p,r 以a r 為基準對陣列進行乙個劃分,比a r 小的放在左邊,比a r 大的放在右邊。quicksort a,p,r 是快速排序的子程式,呼叫劃分程式對陣列進行劃分,然後遞迴地呼叫quicksort a,p,r 以完成快速排序的過程。快速排序的最差...

Python實現快速排序演算法

快速排序 quicksort 1 演算法思想 快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod 1 分治法的基本思想 分治法的基本思想是 將原問題分解為若干個規模更小但結構與原問題相似的子問...