mirror of
https://github.com/heqin-zhu/algorithm.git
synced 2024-03-22 13:30:46 +08:00
36 lines
915 B
Python
36 lines
915 B
Python
''' mbinary
|
|
#########################################################################
|
|
# File : shellSort.py
|
|
# Author: mbinary
|
|
# Mail: zhuheqin1@gmail.com
|
|
# Blog: https://mbinary.xyz
|
|
# Github: https://github.com/mbinary
|
|
# Created Time: 2018-07-06 16:30
|
|
# Description:
|
|
#########################################################################
|
|
'''
|
|
|
|
def shellSort(s,gaps=None):
|
|
if gaps is None:
|
|
gaps = [127,63,31,15,7,3,1]
|
|
n = len(s)
|
|
for gap in gaps:
|
|
for j in range(gap,n):
|
|
cur = j
|
|
num = s[j]
|
|
while cur>=gap and num < s[cur-gap]:
|
|
s[cur] = s[cur-gap]
|
|
cur-=gap
|
|
s[cur] = num
|
|
return s
|
|
|
|
if __name__=='__main__':
|
|
from random import randint
|
|
import sys
|
|
n = 20
|
|
if len(sys.argv)>1:
|
|
n = int(sys.argv[1])
|
|
nums = [randint(1,100) for i in range(n)]
|
|
print(nums)
|
|
print(shellSort(nums))
|