def shellsort(lst): t = [5, 3, 1] for h in t: for j in range(h, len(lst)): i = j - h r = lst[j] flag = 0 while i > -1: if r < lst[i]: flag = 1 lst[i+h], lst[i] = lst[i], lst[i+h] i -= h lst.log() else: break lst[i+h] = r
List order is sampled for visualisation whenever lst.log() is called.
Copyright 2010 Aldo Cortesi