(A)
| 1 | def ShellSort(A): |
| 2 | def GetCols(n): |
| 3 | cols = [1] |
| 4 | val = 1 |
| 5 | while val < n: |
| 6 | val = int(val * 2.2) |
| 7 | cols.insert(0, val) |
| 8 | return cols |
| 9 | |
| 10 | for h in GetCols(len(A)): |
| 11 | for i in range(h, len(A)): |
| 12 | cur = A[i] |
| 13 | j = i |
| 14 | while j >= h and A[j - h] > cur: |
| 15 | A[j] = A[j - h] |
| 16 | j -= h |
| 17 | A[j] = cur |