Hacker News new | ask | show | jobs
by jlnazario 5378 days ago
Implemented my own quicksort that seems to have better performance than the built-in one.

  q = (lo, hi) =>
    # highlight range
    VA.persistHighlight([lo..hi])
    p = VA.get(lo)
    l = lo
    r = hi
    # test pivot position
    t = false
    while (l < r)
      if VA.gt(l,r)
        VA.swap(l,r)
        t = !t
      if t
        r--
      else
        l++
    if (l > lo)
      q(lo, l - 1)
    if (hi > l + 1)
      q(l + 1, hi)
  
  q(0,VA.length - 1)