python快速排序

2021-05-24 02:09:43 字數 896 閱讀 8377

#-*- 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):  

#從開始位置開始比較

while(list[i]i+=1  

while(list[j]>s):  

j-=1  

if(i>=j):  

break  

print list,"***"

self.swap(list,i,j)     

self.sort(list,left,i-1)  

self.sort(list,j+1,right)  

else:  

return  

# 交換變數

def swap(self,list,i,j):  

t=list[i]  

list[i]=list[j]  

list[j]=t  

print 'begin:'  

l=[32,32,34,43,66,65,67,31,77,54,100,42]  

l=list(set(l))#防止佇列中含有重複數  

print l  

print l[(0+10)/2]  

q=quicksort()  #生成排序的乙個例項

q.sort(l,0,len(l)-1)  #傳入的list陣列 開始下標 和 結束下標 

print l 

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快速排序

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 ...