2016-03-30 9 views
0

Ich frage mich, wie ich die Ausgabe der Einfügung in sortierende Sortierung ändern kann? Zum Beispiel würde 537 753 sein. Würde die Laufzeit auch die gleiche sein wie die Zunahme (sowohl der beste als auch der schlechteste Fall)?Modify Insertion Sortieralgorithmus nicht aufsteigend

Pseudo-Code:

INSERTION-SORT(A) 
    for j = 2 to A.length 
     key = A[j] 
     // Insert A[j] into the sorted sequence A[1..j] 
     i = j - 1 
     while i > 0 and A[i] > key 
      A[i +1] = A[i] 
      i = i - 1 
     A[i + 1] = key 
+0

Was meinst du, dass 537 wäre 753? Meinst du, dass Sie die Ziffern in jeder Zahl in absteigender Reihenfolge sortieren und dann sortieren möchten? –

Antwort

1

Runtime von der Änderung nicht betroffen sein werden. Es wäre besser zu sagen absteigend anstelle von nicht-steigende wenn über Zahlen in der Informatik sprechen. Zunehmend wäre aufsteigend. Wenn Sie das wissen, sehen Sie sich den unten stehenden Code für die von Ihnen gewünschte Änderung an (achten Sie besonders auf die while-Schleife).

for j = 2 to A.length 
    key = A[j] 
    i = j - 1 
    while i > 0 and A[i] < key 
     A[i + 1] = A[i] 
     i = i - 1 
    A[i + 1] = key 
+2

Es ist üblich, von "nicht steigend" oder "nicht abnehmend" zu sprechen. In der Tat bedeutet "absteigend" nicht dasselbe wie "nicht ansteigend", da "absteigend" keine doppelten Elemente zulässt. Ich weiß nicht, woher Sie die Idee hatten, dass diese Begriffe nicht "in der Informatik" verwendet wurden. – beaker