Insertion sort


                  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. Karena algoritma ini bekerja dengan membandingkan elemen-elemen data yang akan diurutkan, algoritma ini termasuk pula dalam comparison-based sort. Ide dasar dari algoritma Insertion Sort ini adalah mencari tempat yang "tepat" untuk setiap elemen array, dengan cara sequential search. 
                 Proses ini kemudian menyisipkan sebuah elemen array yang diproses ke tempatnya ang seharusnya. 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.


      Baiklah kita akan memulai pembahasan materi tentang bagaimana Membuat Program Insertion Sort di Bahasa Pemrograman Python. Silahkan cermati program di bawah ini :

Versi 1:
  1. data = [54,26,93,17,77,31,44,55,20]
  2. def insertion1(listData):
  3.     for i in range(len(listData)):
  4.         value = listData[i]
  5.         posisi = i
  6.         while posisi > 0 and listData[posisi-1] > value :
  7.             listData[posisi]=listData[posisi-1]
  8.             posisi -= 1
  9.             print("inner =", listData)
  10.         listData[posisi] = value
  11.     print(listData)

  12. insertion1(data)
Versi 2:
  1. data = [54,26,93,17,77,31,44,55,20]
  2. def insertion2(listData):
  3.     for i in range(len(listData)-1,-1,-1):
  4.         value = listData[i]
  5.         posisi = i
  6.         while posisi < (len(listData)-1) and listData[posisi+1] < value :
  7.             listData[posisi]=listData[posisi+1]
  8.             posisi += 1
  9.             print("inner =", listData)
  10.         listData[posisi] = value
  11.     print(listData)

  12. insertion2(data)

Komentar

Postingan populer dari blog ini

Infix, Prefix dan Postfix pada Python

Shell Sort

Dequeue