Kekurangan
1. Banyaknya operasi yang diperlukan dalam mencari posisi yang tepat untuk
elemen larik.
2. Untuk larik yang jumlahnya besar ini tidak praktis.
3. Jika list terurut terbalik sehingga setiap eksekusi dari perintah harus memindai
dan mengganti seluruh bagian sebelum menyisipkan elemen berikutnya.
4. Membutuhkan waktu O(n2) pada data yang tidak terurut, sehingga tidak cocok
dalam pengurutan elemen dalam jumlah besar.
B. Selection Sort
Metode pengurutan pilih (Selection Sort) adalah metode dimana elemen-
elemen diperbandingkan satu-satu.
Pesudocode:
SelectionSort(Array, n){
for i = 0 menuju n-1 {
min = i //menetapkan indeks i sebagai minimum
//bandingkan elemen pada indeks j dengan indeks min
for j = i+1 ke n {
if Array[j] < Array[min] //jika elemen j < min
min = j //update nilai min = j
j = j+1 //ulangi sampai nilai j = n
}
temp = Array[i] //tukarkan 2 elemen:
Array[i] = Array[min] //Array[i] = Array[min]
Array[min] = temp
} //ulangi sampai nilai i = n-1
}
Kelebihan
1. Algoritma ini sangat rapat dan mudah untuk diimplementasikan.
2. Operasi pertukarannya hanya dilakukan sekali saja.
3. Waktu pengurutan dapat lebih ditekan.
4. Mudah menggabungkannya kembali.
5. Kompleksitas selection sort relatif lebih kecil.
Kekurangan
1. Membutuhkan method tambahan.
2. Sulit untuk membagi masalah.
C. Bubble Sort
Metode gelembung ( bubble sort) = metode penukaran ( exchange sort ) adalah
metode mengurutkan data dengan cara membandingkan masing-masing elemen,
kemudian melakukan penukaran bila perlu. Metode ini adalah metode yang
paling tidak efisien.
D. Merge Sort
Merge sort adalah metode penggabungan dua array ke dalam sebuah array yang
baru. Disebut juga dengan Devide and Conquer method. Ditemukan oleh John
von Neumann pada tahun 1945.
Pseudocode:
MergeSort(arr[], l, r)
If r > l
1. Find the middle point to divide the array into two halves:
middle m = (l+r)/2
2. Call mergeSort for first half:
Call mergeSort(arr, l, m)
3. Call mergeSort for second half:
Call mergeSort(arr, m+1, r)
4. Merge the two halves sorted in step 2 and 3:
Call merge(arr, l, m, r)
- Dibanding dengan algoritma lain, merge sort ini termasuk algoritma yang sangat
efisien dalam penggunaannya sebab setiap list selalu dibagi bagi menjadi list yang
lebih kecil, kemudian digabungkan lagi sehingga tidak perlu melakukan banyak
perbandingan.
- Cocok untuk sorting akses datanya lambat misalnya tape drive atau hard disk.
- Cocok untuk sorting data yang biasanya diakses secara sequentially (berurutan),
misalnya linked list, tape drive, dan hard disk.
- Kekurangan Merge Sort yaitu terlalu banyak menggunakan ruang pada memori.
- Merge Sort membutuhkan lebih banyak ruang daripada jenis sorting lainnya.