1 #-*- coding: UTF-8 -*- 2 import numpy as np 3 4 def ShellSort(a): 5 gap = a.size / 2 6 while gap >= 1: 7 for i in xrange(gap,a.size, gap): 8 for j in xrange(i,0, -gap): 9 if a[j-gap] > a[j]: 10 a[j-gap] , a[j] = a[j], a[j-gap] 11 else: 12 break 13 gap /= 2 14 15 if __name__ == '__main__': 16 a = np.random.randint(0, 10, size = 10) 17 print "Before sorting..." 18 print "---------------------------------------------------------------" 19 print a 20 print "---------------------------------------------------------------" 21 ShellSort(a) 22 print "After sorting..." 23 print "---------------------------------------------------------------" 24 print a 25 print "---------------------------------------------------------------"