Em mới học Python và hơi ngu phần thuật toán ạ, vì e tự học và vì e học trường không chuyên bên lập trình
Hầu hết tự học
Em hiểu thuật toán quicksort như thế này, và trình bày nó trong python, phần tử chốt e chọn là phần tử ở giữa.
Sao code không chạy được và báo lỗi: “RuntimeError: maximum recursion depth exceeded while calling a Python object”. Em xin cảm ơn!
def quicksort(data,left,right):
pivot=data[int((len(data)-1)/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 = [4, 6, 3, 7, 2]
ketqua = quicksort(danhsach,0,4)
print(ketqua)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?