Quantcast
Channel: ‘CS-302’ Articles at PurwadhikaPress
Viewing all articles
Browse latest Browse all 5

Insertion Sort

$
0
0

Pada kesempatan kali ini, saya ingin membahas mengenai cara mengurutkan suatu data acak menjadi data yang berurutan. Salah satu algoritma untuk mengurutkan data yang acak adalah insertion sort. Cara insertion sort mengurutkan adalah dengan membandingkan 1 per satu data dan kemudian menukarnya apabila memenuhi syarat tertentu. Dengan menggunakan insertion sort, data biasa dimasukkan ke array. Cara insertion sort hampir mirip ketika orang mengurutkan kartu remi, dengan dibandingkan kemudian ditukar.

Walau pun mengurutkan data dengan insertion sort kurang efisien dibanding dengan quick sort, heap sort, dan merge sort, namun insertion sort juga mempunyai beberapa kelebihan seperti :

  • Mudah diimplementasikan
  • Efisien untuk data dengan jumlah yang sedikit
  • Cara sorting yang lebih mudah, dibandingkan dengan selection sort dan bubble sort
  • Hanya butuh 1 tempat penyimpanan dan menghemat memory

Pada algoritma, terdapat best case, worst case, dan average case. Di mana best case adalah cara tercepat dan terefisien dari alogitma tersebut, worst case adalah cara terlama dari algoritma tersebut, dan average adalah cara yang tidak cepat dan juga tidak lama dalam algoritma itu. Inserton sort juga mempunyai best case, worst case, dan average case. Worst case nya didapat dengan rumus О(n2) comparisons, swaps. Best case dengan Ω(n) comparisons, O(1) swaps, dan average case О(n2) comparisons, swaps.

Terdapat 2 cara pengurutan, yaitu descending dan ascending. Descanding adalah pengurutan data dari yang terbesar ke yang terkecil. Sedangkan ascending adalah pengurutan data dari yang terkecil ke yang terbesar. Berikut adalah pseudocode dari Insertion sort (untuk ascending):

  1. Variable arr[n], i, j, buffer
  2. Input arr[n]
  3. For( i = 1 ; i < n ; i ++) do
  4. Buffer == arr[i]
  5. For ( j = i-1; j>=0; j–)do
  6. If(buffer<=arr[j]) do
  7. Swap arr[j] with arr[j+1]
  8. Fi done
  9. Done
  10. Done

Bagaimana contohnya dalam program? Kali ini saya membuat contoh pada program c#

Int n, i, j, buffer;

Int[] arr = new int[n];

for (int i = 0 + 1; i < n; i++)

{

buffer = arr[i];

for (int j = i – 1; j >= 0; j–)

{

if (buffer <= arr[j])

{

arr[j + 1] = arr[j];

arr[j] = buffer;

}

}

}

cs 302


Viewing all articles
Browse latest Browse all 5

Trending Articles