def shellSort(shuzu): N = len(shuzu) h = 1 while h < N/3: h = 3 * h + 1#1,4,13,40,121,... while h >= 1:#将数组变为h有序 for i in range(h, N): j = i while j >= h: if a[j] < a[j-h]: a[j],a[j-h] = a[j-h],a[j] j = j - h h = int(h / 3)
原文:http://my.oschina.net/stevenKelly/blog/390318