SHORTING
SHORTING
1. BUBBLE SHORT
Bubble sort (metode
gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan
penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa
dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada
perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena
masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat. Berikut
SourceCodenya:
listData = [3,4,100,90,70]
iterasi = 0
for x in range (1,len(listData)):
for y in range (len(listData)-1):
iterasi += 1
if
listData[y] > listData[y+1]:
listData[y], listData[y+1] = listData[y+1], listData[y]
print(listData)
print(iterasi)
2.
SELECTION SHORT
Pengurutan dilakukan dengan
memilih elemen terbesar dan menempatkan pada posisinya,kemudian mencari element
terbesar berikutnya dan menempatkan pada tempatnya, dan seterusnya.
Proses pengurutan dengan menggunakan metode selection sort
secara terurut naik adalah:
1. Mencari data terkecil dari data pertama
sampai data terakhir, kemunian di tukar posisinya dengan data
pertama.
2. Mencari data terkecil dari data kedua
sampai data terakhir, kemudian di tukar dengan posisinya dengan data kedua.
3. Mencari data terkecil dari data ketiga
sampai data terakhir, kemudian di tukar posisinya dengan data ketiga
4. dan seterusnya sampai semua data turut
naik. apabila terdapat n buah data yang akan di urutkan, maka membutukan (n –
1) langkah pengurutan, dimana data terakhir yaitu data ke-n tidak perlu di
urutkan karena hanya tinggal satu satunya.
Berikut SourceCodenya:
listData = [3,4,100,90,70]
iterasi = 0
for x in range(0,len(listData)-1):
minIndex = x
for y in range(x+1,len(listData)):
iterasi += 1
if listData[y] < listData[minIndex]:
minIndex = y
listData[x],listData[minIndex] = listData[minIndex],listData[x]
print(listData)
print(iterasi)
3.
SELECTION SHORT
Data
dicek satu per satu mulai dari yang kedua sampai dengan yang terakhir. Apabila
ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan
pada posisi yang sesuai. Akan lebih mudah apabila membayangkan pengurutan kartu.
Pertama-tama anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya
dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di sebelahkiri, maka ambil kartu tersebut dan sisipkan di tempat yang sesuai. SourdCodenya yaitu sebagai berikut:
ditemukan data yang lebih kecil daripada data sebelumnya, maka data tersebut disisipkan
pada posisi yang sesuai. Akan lebih mudah apabila membayangkan pengurutan kartu.
Pertama-tama anda meletakkan kartu-kartu tersebut di atas meja, kemudian melihatnya
dari kiri ke kanan. Apabila kartu di sebelah kanan lebih kecil daripada kartu di sebelahkiri, maka ambil kartu tersebut dan sisipkan di tempat yang sesuai. SourdCodenya yaitu sebagai berikut:
def
insertionSort(listData):
iterasi = 0
for x in range(1, len(listData)):
print(listData)
key = listData[x]
ind = x
while ind > 0 and listData[ind-1]
> key:
iterasi += 1
listData[ind] = listData[ind-1]
ind -= 1
listData[ind] = key
print(listData)
print(iterasi)
b = [45, 99, 64, 7, 85, 310]
insertionSort(b)
4.
QUICK SHORT
Quicksort
dimulai dengan menscan daftar yang disortir untuk nilai median. Nilai ini, yang
disebut tumpuan (pivot), kemudian dipindahkan ke satu sisi pada daftar dan
butir-butir yang nilainya lebih besar dari tumpuan di pindahkan ke sisi lain.
SourdCodenya yaitu sebagai berikut:
def
QuickSort(A,start,end):
if start<end:
pindex=partition(A,start,end)
QuickSort(A,start,pindex-1)
QuickSort(A,pindex+1,end)
def
partition(A,start,end):
pivot = A[end]
pindex = start
for i in range(start,end):
if (A[i] <= pivot):
A[i],A[pindex]=A[pindex],A[i]
pindex += 1
A[pindex],A[end] = A[end],A[pindex]
return pindex
A =
[54,26,93,17,77,31,44,55,20]
QuickSort(A,0,len(A)-1)
print(A)
5.
MERGED SHORT
Metode
penggabungan biasanya digunakan pada pengurutan berkas. Prinsip dari metode
penggabungan sebagai berikut : mula-mula diberikan dua kumpulan data yang
sudah dalam keadaan urut. Kedua kumpulan data
tersebut harus dijadikan satu table sehingga
dalam keadaan urut. SourdCodenya yaitu sebagai berikut:
def
mergeSort(nlist):
print("Splitting ",nlist)
if len(nlist)>1:
mid = len(nlist)//2
lefthalf = nlist[:mid]
righthalf = nlist[mid:]
mergeSort(lefthalf)
mergeSort(righthalf)
i=j=k=0
while i < len(lefthalf) and j <
len(righthalf):
if lefthalf[i] < righthalf[j]:
nlist[k]=lefthalf[i]
i=i+1
else:
nlist[k]=righthalf[j]
j=j+1
k=k+1
while i < len(lefthalf):
nlist[k]=lefthalf[i]
i=i+1
k=k+1
while j < len(righthalf):
nlist[k]=righthalf[j]
j=j+1
k=k+1
print("Merging ",nlist)
nlist =
[79, 87, 8, 38, 2, 18]
mergeSort(nlist)
print(nlist)
6.
SELL SHORT
Merupakan
algoritma yang stau jenis dengan insertion sort, dimana pada
setiap nilai i dalam n/i item diurutkan. Pada
setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir. SourdCodenya yaitu
sebagai berikut:
def
shellSort(alist):
sublistcount = len(alist)//2
while sublistcount > 0:
for start_position in
range(sublistcount):
gap_InsertionSort(alist,
start_position, sublistcount)
print("After increments of
size",sublistcount, "The list is",nlist)
sublistcount = sublistcount // 2
def
gap_InsertionSort(nlist,start,gap):
for i in range(start+gap,len(nlist),gap):
current_value = nlist[i]
position = i
while position>=gap and
nlist[position-gap]>current_value:
nlist[position]=nlist[position-gap]
position = position-gap
nlist[position]=current_value
nlist =
[3,4,100,90,70]
shellSort(nlist)
print(nlist)
1. FITRI ANISA (170411100014)
2. DHEA OKY SYAFITRI (170411100006)
Komentar
Posting Komentar