Sorting Data 2 - Insertion Sort dan Quick Sort
1. Insertion sort
adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Proses dilakukan sebanyak N-1 tahapan (dalam sorting disebut sebagai "pass"), dengan indeks dimulai dari 0. Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.
2. Quick Sort
Algoritma pengurutan populer yang sering lebih cepat dalam praktiknya dibandingkan dengan algoritma penyortiran lainnya. Ini menggunakan strategi divide-and-conquer untuk mengurutkan item dengan cepat dengan membagi array besar ke dalam dua array yang lebih kecil
adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Proses dilakukan sebanyak N-1 tahapan (dalam sorting disebut sebagai "pass"), dengan indeks dimulai dari 0. Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.
def InsertionSort(val):
for index in range(len(val)-1,-1,-1):
valueaktif = val[index]
posisi = index
print(val)
while posisi < len(val)-1 and valueaktif < val[posisi+1]:
# print(valueaktif,'<',val[posisi+1])
val[posisi]=val[posisi+1]
posisi = posisi+1
val[posisi]=valueaktif
DaftarAngka = [68, 90, 78, 44, 34, 20, 100, 56, 34]
InsertionSort(DaftarAngka)
print(DaftarAngka)
Video Tutorial Insertion Sort
2. Quick Sort
Algoritma pengurutan populer yang sering lebih cepat dalam praktiknya dibandingkan dengan algoritma penyortiran lainnya. Ini menggunakan strategi divide-and-conquer untuk mengurutkan item dengan cepat dengan membagi array besar ke dalam dua array yang lebih kecil
print('### Quick Sort Modif Pivot in the middle ###')
print('=====================================================')
def quickSort(a,first,last):
if first < last:
print('partion')
pecah = partion(a,first,last)
quickSort(a,first,pecah-1)
quickSort(a,pecah+1,last)
def partion(a,start,end):
middle = (start+end)//2
pivot = a.pop(middle)
pIndex = start
for i in range(start,end):
print('if',a[i],'>=', pivot)
if a[i] >= pivot:
a[i],a[pIndex]=a[pIndex],a[i]
pIndex += 1
print('result',pivot,a)
a.insert(pIndex,pivot)
print('Hasil Fungsi',pivot,a)
return pIndex
a=[68, 90, 78, 44, 34, 20, 100, 56, 34]
quickSort(a,0,len(a)-1)
print('Hasil Akhir',a)
Video Tutorial Quick Sort
Comments
Post a Comment