Advertisement
infogulch

Iterative/In-place merge sort for AutoHotkey_L

May 29th, 2012
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. MergeSort(a)
  2. {
  3.     len := 1
  4.     max := a.MaxIndex()
  5.     loop
  6.     {
  7.         i := 0
  8.         while i < max
  9.         {   ; merge
  10.             l := i + 1
  11.             r := l + len
  12.             i += len << 1
  13.             If (i > max)
  14.                 i := max
  15.             while l < r && r <= i
  16.             {
  17.                 if a[r] < a[l]
  18.                     a.Insert(l,a.Remove(r++))
  19.                 l++
  20.             }
  21.         }
  22.         len <<= 1
  23.     }
  24.     until len >= max
  25.     return a
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement