에,이 퀵 알고리즘의 의사 코드는 말한다.퀵 알고리즘은 위키 백과에서 파이썬
def partition(A,lo,hi):
pivot = A[hi]
i=lo
#Swap
for j in range(lo,len(A)-1):
if (A[j] <= pivot):
val=A[i]
A[i]=A[j]
A[j]=val
i=i+1
val=A[i]
A[i]=A[hi]
A[hi]=val
return(A,i)
def quicksort(A,lo,hi):
if (lo<hi):
[A,p]=partition(A,lo,hi)
quicksort(A,lo,p-1)
quicksort(A,p+1,hi)
A=[5,3,2,6,8,9,1]
A=quicksort(A, 0, len(A)-1)
print(A)
ORIGINAL : 오류가 발생하지 않으므로 실수하지 않았습니다.
업데이트 : 이제 무한 재귀가 발생합니다.
그래, 너는 나에게 말한 것을 고칠 때, 꽤 괜찮은 편이라. 첫 번째 배열은 입력이고, 재귀의 끝에서 나는 아무 것도 얻지 못했다. 왜 그런가? –
네, 감사합니다.하지만 지금은별로 좋지 않습니다.[1, 2, 5, 3, 8, 9] -> 재 입력 [1, 2, 5, 3, 8, 9] 8, 9, 6] [1,2,5,3,8,9,6] [1,2,5,3,8,9,6] [1, 2, 5, 3, 8, 9, 6] 없음 ->? 나는 결국 아무 것도 얻지 못하고 제대로 분류하지 못한다는 것을 알지 못한다. –
내 의견에 마지막으로 언급했다. ** quicksort **에는 반환 값이 없습니다. ** 없음 **은 기본 반환 값입니다. 당신의 실수는 그 값을 A에 할당하는 것입니다. 단지 그 문장을 제거하면 최종 산출물을 얻을 수 있습니다. – Prune