Ich habe zwei Version der Implementierung von INSERTION SORT; Ich denke, , die gleichwertig sind, aber der zweite gibt eine sortierte Liste falsch zurück. Dies ist der erste:Insertion_Sort() Implementierung (Fehler), Python
def insertionSort(A):
for j in range(1,len(A)):
key = A[j]
i = j
while i>0 and A[i-1]>key:
A[i] = A[i-1]
i -= 1
A[i] = key
dies der zweite ist:
def insertionSort(A):
for j in range(1,len(A)):
key = A[j]
i = j-1
while i>0 and A[i]>key:
A[i+1] = A[i]
i -= 1
A[i+1] = key
ich diese beiden Algorithmus mit diesem C-Array
C = [54,26,93,17,77,31,44,55,20]
insertionSort(C)
print(C)
Im ersten Fall getestete Mein Array ist korrekt sortiert. im zweiten Fall meines Ergebnis ist:
[54, 17, 20, 26, 31, 44, 55, 77, 93]
Der zweite Fall aus dem Pseudo-Code kommt auf meiner Schule Buch. Warum funktioniert es nicht richtig?
Warum erfinden Sie das Rad neu - Tippschleife im Quellcode für bisect ... https://docs.python.org/2/library/bissect.html – Merlin