Python 快速排序

2021-08-20 08:52:58 字數 2254 閱讀 3042

快速排序有三個變數:low(left),hight(right),key(其中left,right代表陣列的首尾,是不變值)

low是指向陣列左邊的指標,hight是指向陣列右邊的指標,key是比較的基準。在執行快速排序的過程中,首先

**如下:

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

# @time : 2018/5/30 9:37

# @author : li

# @file : quick_sort.py

import random

defquick_sort

(array, left, right):

""" :param array: 待排序資料

:param left: 左邊下標

:param right: 右邊下標

:return:

"""if left > right:

return

low = left

hight = right

key = array[low]

while low < hight:

while low < hight and array[hight] > key:

# 只要hight下標的資料比key大,hight就往前走

hight -= 1

array[low] = array[hight]

array[hight] = key

while low < hight and array[low] <= key:

# 只要low的資料比key小或者等於key,low就往後走

low += 1

array[hight] = array[low]

array[low] = key

print(array)

quick_sort(array, left, low-1)

quick_sort(array, low+1, right)

if __name__=="__main__":

array = [random.randrange(10000+i) for i in range(10)]

print("before sort:", array)

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

print("-------快速排序之後的陣列 -------")

print(array)

輸出結果:

python快速排序排序 python快速排序

import random def rand n for i in range n yield random.randint 0,1000 建立乙個隨機數列表 def createlist n lists for i in rand n return lists 挖坑法快速排序 def quick ...

排序 快速排序 Python

快速排序 快排 是非常常用的排序方法,在技術面試中出現頻率也特別高。它主要採用交換和分治的策略進行排序。是不穩定排序。步驟 1 在序列中選乙個元素作為劃分的基準元素 pivot 2 將所有不大於pivot的數字放在pivot的前面,大於pivot的數字放在pivot的後面 3 以pivot為界,對前...

python快速排序

coding utf 8 class quicksort def sort self,list,left,right 開始位置小於 位置 if left 取到中間的乙個下標值 s list left right 2 i 0 i left j 下標結束 j right while true 從開始位置...