Repository where I mostly put random python scripts.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
674 B

5 years ago
  1. # coding: utf-8
  2. # In[2]:
  3. alist = [54,26,93,17,77,31,44,55,20]
  4. def shellSort(alist):
  5. sublistcount = len(alist)//2
  6. while sublistcount > 0:
  7. for startposition in range(sublistcount):
  8. gapInsertionSort(alist,startposition,sublistcount)
  9. sublistcount = sublistcount // 2
  10. return alist
  11. def gapInsertionSort(alist,start,gap):
  12. for i in range(start+gap,len(alist),gap):
  13. currentvalue = alist[i]
  14. position = i
  15. while position>=gap and alist[position-gap]>currentvalue:
  16. alist[position]=alist[position-gap]
  17. position = position-gap
  18. alist[position]=currentvalue
  19. print(shellSort(alist))