빠른 정렬 코드에 문제가 있습니다. 파이썬 (Python 3.6) 코딩에 익숙하지 않다면, 정말 도움이 될 것입니다. Quick Sort 온라인을 여러 번 구현했지만 실제로 코드에 무엇이 잘못되었는지 파악하고 싶습니다. 입력 내용빠른 정렬 코드의 문제점
def Partition(A):
q = A[0]
i = 1
for j in range(1, len(A)):
if A[j] < q:
A[j], A[i] = A[i], A[j]
i = i + 1
A[0], A[i - 1] = A[i - 1], A[0]
return i - 1
def QuickSort(A):
if len(A) <= 1:
return A
else:
q = Partition(A)
QuickSort(A[ : q])
QuickSort(A[q + 1 : ])
return A
A = [7, 5, 4, 1, 3, 6, 2, 8]
Sorted = []
Sorted = QuickSort(A)
print(Sorted)
I 출력 얻고 상기 [2, 5, 4, 1, 3, 6, 7, 8] 대신 오름차순으로 정렬 된 목록을 얻는 : I 아래 내 코드를 붙여하고있다.
이QuickSort(A[ : q])
QuickSort(A[q + 1 : ])
그들은 뭔가를 반환하지만, 당신은 그들이 돌아 것을 무시, 그래서 그것은 잃어버린 :
무엇이 잘못되었거나 예상되는 결과와 현재 무엇을 얻고 있는지 설명 할 수 있습니까? 코드를 덤핑하고 무엇이 잘못되었는지 묻는 것은 스택 오버 플로우에 대한 주제가 아닙니다. –
@StefanPochmann 제 코드를 도와주세요. –