MergeSort: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: ===Psydocode=== ====MergeSort(H,r,l)==== <b>if</b> l< r <b>then</b> m := l + r / 2 (untere Schranke) <b>MergeSort(</b> H <b>)</b> <b>MergeSort(</b> H ,...)
 
Zeile 5: Zeile 5:
 
   <b>if</b> l< r <b>then</b>
 
   <b>if</b> l< r <b>then</b>
 
     m := l + r / 2  (untere Schranke)
 
     m := l + r / 2  (untere Schranke)
     <b>MergeSort(</b> H <b>)</b>
+
     <b>MergeSort(</b> H , l , m <b>)</b>
     <b>MergeSort(</b> H , <b>)</b>
+
     <b>MergeSort(</b> H , m + 1 , r <b>)</b>
 
     <b>Merge(</b> H , l, m, r <b>)</b>
 
     <b>Merge(</b> H , l, m, r <b>)</b>
  

Version vom 21. September 2008, 18:19 Uhr

Psydocode

MergeSort(H,r,l)

 if l< r then
   m := l + r / 2  (untere Schranke)
   MergeSort( H , l , m )
   MergeSort( H , m + 1 , r )
   Merge( H , l, m, r )

Merge(H,l,m,r)

j := l
k := m + 1
for i := l to r do
  if j > m then
    B[i] = A[k];
    k := k + 1
  if k > r then
    B[i] = A[j];
    j := j + 1
  if H[j] < H[k] then
    B[i] = A[j];
    j := j + 1
  else
    B[i] = A[k];
    k := k + 1
 Speicher für B wieder freigeben