Professional Documents
Culture Documents
8.4 Shell-Sort
8.4 Shell-Sort
!
" # ! $ $%
& '
( (%
! !
1
) & ! !
& * & ! %%
+ ! , (
*
! ( ! ( !
&
- .) / ( & .
( 01 2 0 2 0 1 2
( 0 2 0 2 0 23
( 0 2 04 2 0 2 3
(
/ ( & .
( 01 2 0 2 0 2
( 0 2 0 2 04 2 3
(
2
( & !
5 * 6& !
7 ( (
8 (
7 ! , % &
* . % %
30 62 53 42 17 97 91 38
[0] [1] [2] [3] [4] [5] [6] [7]
3
Step 1: Buat sub list k = 5
S[0] S[5]
S[1] S[6]
30 62 53 42 17 97 91 38
S[2] S[7] [0] [1] [2] [3] [4] [5] [6] [7]
S[3]
4
Step 1: Buat sub list k =1 S[0] S[1] S[2] S[3] S[4] S[5] S[6] S[7]
30 17 38 42 53 97 91 62
[0] [1] [2] [3] [4] [5] [6] [7]
" ( &
.N / 2
9 ! & % (N / 2)
/ 2 N / 4
9 ! & % (N / 4)
/ 2 N / 8
" & ! &
10
5
!"
7 :; .
(" ! 5 / 16 :; <! !
:;
(= 5/ 6 & & :; / (5 > :; 6
(" & ! (
! (5 > : ; 6
7 ( / :; !
! ( ! (5 > : ; 6
7 ( / : ;? !
! ( ! (5 > : ; ?6
" & ! &
5did_swap = false6
11
# $
1. Jarak ← N
Jarak > 1 !
3. Jarak ← Jarak / 2
4. did_swap ← true
= ! did_swap = true
6. did_swap ← false
7. i ← 0
? i < (N – Jarak) $ !
$ ) Data[i] > Data[i + Jarak] 1
10. tukar(Data[i], Data[i + Jarak])
11. did_swap ← true
12. i ← i + 1
12
6
# $
@ !
! * ( &
" *
:; % & % &
!
!%
! ! &
!
13
$ % & $'
$
:
111
111 ?
111 $
?1 1 1 4$ 1
111 1 ?