Shell Sort pada Pyhton
Hal ini dapat dilihat sebagai generalisasi penyortiran dengan pertukaran (bubble sort) atau penyortiran dengan penyisipan (semacam penyisipan). Metode ini dimulai dengan menyortir pasangan elemen yang berjauhan satu sama lain, lalu secara progresif mengurangi jarak antar elemen yang akan dibandingkan. Dimulai dengan elemen yang berjauhan, ia dapat memindahkan beberapa elemen di luar tempat ke posisi lebih cepat daripada pertukaran tetangga terdekat yang sederhana.
N = 8
Gap : 8/2 = 4
Compare:
0-4
1-5
2-6
3-7
Gap : 4/2 = 2
Compare:
0-2 4-6
1-3 5-7
2-4
3-5
Gap : 2/2 = 1
Insertion Sort
Contoh Source Code Shell Sort :
from __future__ import print_function
def shellSort(alist):
sublistcount = len(alist)//2
while sublistcount > 0:
for startposition in range(sublistcount):
gapInsertionSort(alist,startposition,sublistcount)
sublistcount = sublistcount // 2
def gapInsertionSort(alist,start,gap):
for i in range(start+gap,len(alist),gap):
currentvalue = alist[i]
position = i
while position>=gap and alist[position-gap]>currentvalue:
alist[position]=alist[position-gap]
position = position-gap
alist[position]=currentvalue
alist = [35,33,42,10,14,19,27,44]
shellSort(alist)
print(alist)
Selamat Mencoba...
Tidak ada komentar:
Posting Komentar