Thứ Hai, 18 tháng 2, 2019

Quick Sort

Thuật toán quicksort, với cách chọn chốt là phần tử ở giữa của dãy. Hãy thay pivot=data[left] nếu như bạn chọn phần tử đầu tiên làm chốt và pivot=data[right] nếu bạn chọn phần tử cuối cùng làm chốt.

def quicksort(data,left,right):
pivot=data[int((left+right)/2)]
i=left
j=right
while i<=j:
while data[i]<pivot:
i+=1
while data[j]>pivot:
j-=1
if i<=j:
temp=data[i]
data[i]=data[j]
data[j]=temp
i+=1
j-=1 if left<j:
quicksort(data,left,j)
if i<right:
quicksort(data,i,right)
return data
danhsach = [55,88,33,65,88,11,3,9,0,55,4,3,7,8,3]
ketqua = quicksort(danhsach,0,len(danhsach)-1)
print(ketqua)

Không có nhận xét nào:

Đăng nhận xét