#__author__=lx #__date__=2011-09-27 #__brief_=shell_sort def shell_sort( l ): gap = 0 n = len( l ) while ( gap <= n ): gap = gap * 3 + 1 while ( gap > 0 ): i = gap while ( i < n ): j = i - gap temp = l[i] while ( ( j >= 0 ) and ( l[ j ] > temp )): l[ j + gap ] = l[ j ] j = j - gap l[ j + gap ] = temp i += 1 gap = ( gap - 1 ) / 3 if __name__ == "__main__": l = [] l.append( 3 ) l.append( 2 ) l.append( 1 ) l.append( 8 ) l.append( 0 ) l.append( 20 ) shell_sort( l ) for i in l: print i