2 n1 ~. U! P& z. H. F n = len(arr)) N; K7 T7 o' S) }3 |1 ?
gap = int(n/2)+ c; _, [8 E, Y9 H! x6 q* s2 O! t5 h
1 v( [" H; |; I t$ v* X4 c
while gap > 0: ; O) Y- C, V F. v
& r! T* m- C0 A4 j9 y7 P, K' L for i in range(gap,n): % x6 r4 T% }; I" b* C0 S0 I# k+ @! u& v# g3 }$ d ^1 H# j
temp = arr + I, A8 X* S- ]* S
j = i ) E: O- q2 ?; x% G( k) |' i while j >= gap and arr[j-gap] >temp: ! q s& [$ J, B7 t8 |
arr[j] = arr[j-gap] ; p# i/ u& i H* y% H! t
j -= gap ) n3 H" k: Q1 {. Y8 k; n
arr[j] = temp - l2 j& G* q7 i
gap = int(gap/2) $ r, W. H7 I: k p# ^ i0 ]% }# X0 ?7 T
arr = [ 12, 34, 54, 2, 3] : j1 a, l. G- J4 @9 Q! B u ( H+ }. S* b' Cn = len(arr) ' N% a1 P5 G3 C
print ("排序前:") 5 i6 i. y0 j; X$ \for i in range(n): * ~4 t; `, t; r" M* h, n9 C print(arr), 4 [# [2 A8 S5 `8 O" y4 C' `: ]7 _: F- A, V% }8 W# d$ J, Q0 i- r
shellSort(arr) 1 w9 n+ y0 T1 W6 r+ j
) A' u' d8 i, D
print ("\n排序后:") + P' h! H: W% A6 [for i in range(n): , g5 j. _$ _- Z/ ]
print(arr),. W4 D! t" k8 |( K