Pengantar Algoritma Pengurutan Penyisipan

Pengantar Algoritma Pengurutan Penyisipan

Insertion Sort adalah teknik yang bekerja dengan memanfaatkan sublist yang diurutkan dan terus menambahkan nilai dari daftar yang tidak disortir sampai seluruh daftar diurutkan.





Algoritme dimulai dengan item daftar pertama sebagai subdaftar yang diurutkan. Kemudian membandingkan nomor berikutnya dengan yang pertama. Jika lebih besar, maka dimasukkan dalam indeks pertama. Jika tidak, itu akan tertinggal di index.





Nilai ketiga kemudian dibandingkan dengan dua lainnya, dan kemudian dimasukkan ke dalam indeks yang benar. Proses ini berlangsung sampai seluruh daftar diurutkan.





Pandangan Lebih Dekat pada Insertion Sortir

Uraian di atas mungkin tidak masuk akal bagi Anda. Sebuah contoh akan membantu Anda memahami lebih baik.

Misalkan Anda memiliki daftar: [39, 6, 2, 51, 30, 42, 7].



Algoritme mengidentifikasi 39 sebagai nilai pertama dari subdaftar yang diurutkan. Evaluasi kemudian beralih ke posisi kedua.

Terkait: Pemrograman Dinamis: Contoh, Masalah Umum, dan Solusi





6 kemudian dibandingkan dengan 39. Karena 6 kurang dari 39, 6 disisipkan di posisi pertama dan 39 di posisi kedua. Urutan daftar baru setelah pass pertama adalah sekarang:

[6, 39, 2, 51, 30, 42, 7]





Evaluasi kini bergeser ke posisi ketiga. 2 dibandingkan dengan dua angka terakhir dan kemudian dimasukkan pada posisi yang tepat. Urutan daftar baru setelah pass kedua adalah sekarang:

[2, 6, 39, 51, 30, 42, 7]

Untuk pass ketiga, urutan daftarnya adalah:

[2, 6, 39, 51, 30, 42, 7]

Proses ini berulang sampai seluruh daftar diurutkan.

Lihat diagram di bawah yang merangkum operasi ini:

Analisis algoritma

Kompleksitas waktu Insertion Sort adalah O(n2), seperti semacam gelembung . Jumlah perbandingan dalam skenario terburuk adalah jumlah semua bilangan bulat dari 1 hingga (n-1), memberikan jumlah kuadrat.

Implementasi Kode

Kode Python dan Java di bawah ini menunjukkan bagaimana Anda dapat mengimplementasikan metode Insertion Sort.

ular piton:

def insertionSort(mylist):
for step in range(1, len(mylist)):
current_element = mylist[step]
position = step
while position > 0 and mylist[position - 1] > current_element:
mylist[position] = mylist[position - 1]
position = position - 1
mylist[position] = current_element

Jawa:

void insertionSort(int[] myarray) {
int n = myarray.length;
for (int x = 1; x int key = myarray[x];
int y = x-1;
while ( (y > -1) && ( myarray [y] > key ) ) {
myarray [y+1] = myarray [y];
y--;
}
myarray[y+1] = key;
}
}

Pengodean Lebih Baik Dengan Pseudocode

Contoh kode di atas diberikan tanpa pseudocode apa pun yang dapat Anda rujuk untuk menulis algoritme ini dalam bahasa lain. Sebagian besar programmer (termasuk penulis) suka menjalankan keyboard mereka setelah diberi tahu 'berbisik' tentang cara kerja suatu program.

Sayangnya, pendekatan ini rentan terhadap kesalahan karena logika program menjadi lebih rumit. Bagaimana Anda ingin meningkatkan level game pemrograman Anda dengan mempelajari cara menggunakan pseudocode?

Membagikan Membagikan Menciak Surel Apa itu Pseudocode dan Bagaimana Membuat Anda Menjadi Pengembang yang Lebih Baik?

Susah belajar pemrograman? Pahami kode dengan mempelajari pseudocode. Tapi apa itu pseudocode dan dapatkah itu benar-benar membantu?

Baca Selanjutnya
Topik-topik yang berkaitan
  • Pemrograman
  • Jawa
  • Python
  • Tutorial Pengkodean
Tentang Penulis Jerome Davidson(22 Artikel Diterbitkan)

Jerome adalah Staf Penulis di MakeUseOf. Dia meliput artikel tentang Pemrograman dan Linux. Dia juga penggemar kripto dan selalu mengawasi industri kripto.

cara screenshot di android
More From Jerome Davidson

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan