Selection Sort dan Insertion Sort

Struktur Data dan Algoritma di Python

Miriam Antona

Software engineer

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen pertama.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen pertama. Elemen pertama berwarna oranye.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen kedua. Elemen pertama berwarna oranye.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen kedua. Elemen kedua berwarna oranye.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen ketiga. Elemen kedua berwarna oranye.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen keempat. Elemen kedua berwarna oranye.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen keempat. Elemen keempat berwarna oranye.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Ada satu penunjuk ke elemen kelima. Elemen keempat berwarna oranye.

  • Tentukan nilai terendah
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen keempat berwarna oranye. Ada dua panah yang menunjukkan elemen pertama dan keempat akan ditukar.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama berwarna oranye. Elemen pertama dan keempat telah ditukar.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama berwarna biru dan elemen kedua berwarna oranye. Ada satu penunjuk ke elemen kedua.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama berwarna biru dan elemen kedua berwarna oranye. Ada satu penunjuk ke elemen ketiga.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama berwarna biru dan elemen kedua berwarna oranye. Ada satu penunjuk ke elemen keempat.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru. Ada satu penunjuk ke elemen ketiga.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru. Ada satu penunjuk ke elemen ketiga.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru dan elemen ketiga berwarna oranye. Ada satu penunjuk ke elemen ketiga.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru dan elemen ketiga berwarna oranye. Ada satu penunjuk ke elemen keempat.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru dan elemen keempat berwarna oranye. Ada satu penunjuk ke elemen keempat.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru dan elemen keempat berwarna oranye. Ada satu penunjuk ke elemen kelima.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru dan elemen keempat berwarna oranye. Ada dua panah yang menunjukkan item ketiga dan keempat akan ditukar.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru dan elemen ketiga berwarna oranye. Item ketiga dan keempat telah ditukar.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru. Ada satu penunjuk ke elemen keempat.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru, dan elemen keempat berwarna oranye. Ada satu penunjuk ke elemen keempat.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru, dan elemen keempat berwarna oranye. Ada satu penunjuk ke elemen kelima.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru, dan elemen kelima berwarna oranye. Ada satu penunjuk ke elemen kelima.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru, dan elemen kelima berwarna oranye. Ada dua panah yang menunjukkan elemen keempat dan kelima akan ditukar.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru, dan elemen keempat berwarna oranye. Elemen keempat dan kelima telah ditukar.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, ketiga, dan keempat berwarna biru.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort

Ilustrasi daftar dengan angka acak. Semua elemen berwarna biru.

  • Tentukan nilai terendah
  • Tukar nilai terendah dengan elemen tak terurut pertama
Struktur Data dan Algoritma di Python

Selection sort - implementasi

def selection_sort(my_list):
  list_length = len(my_list)
  for i in range(list_length - 1):

lowest = my_list[i]
index = i
for j in range(i + 1, list_length):
if my_list[j] < lowest:
index = j
lowest = my_list[j]
my_list[i] , my_list[index] = my_list[index] , my_list[i]
return my_list
Struktur Data dan Algoritma di Python

Selection sort - kompleksitas

  • Kasus terburuk: $O(n^2)$
  • Rata-rata: $\Theta(n^2)$
  • Kasus terbaik: $\Omega(n^2)$
Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama berwarna biru dan elemen kedua diangkat di atas yang lain.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama berwarna biru dan elemen kedua diangkat di atas yang lain. Elemen pertama digeser ke kanan.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen kedua berwarna biru. Elemen yang diangkat kini di posisi pertama.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama dan kedua berwarna biru. Elemen ketiga diangkat di atas yang lain.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru. Elemen ketiga diangkat di atas yang lain.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru. Elemen ketiga diangkat di atas yang lain. Elemen ketiga digeser ke kanan.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru. Elemen ketiga diangkat di atas yang lain. Elemen ketiga dan kedua digeser ke kanan.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru. Elemen ketiga diangkat di atas yang lain. Elemen ketiga, kedua, dan ketiga digeser ke kanan.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, dan ketiga berwarna biru. Elemen ketiga diangkat di atas yang lain. Elemen ketiga, kedua, dan ketiga digeser ke kanan. Elemen yang diangkat kini di posisi pertama.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, ketiga, dan keempat berwarna biru.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, ketiga, dan keempat berwarna biru. Elemen kelima diangkat di atas yang lain.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, ketiga, dan keempat berwarna biru. Elemen kelima diangkat di atas yang lain. Elemen keempat digeser ke kanan.

Struktur Data dan Algoritma di Python

Insertion sort

Ilustrasi daftar dengan angka acak. Elemen pertama, kedua, ketiga, dan keempat berwarna biru. Elemen kelima diangkat di atas yang lain. Elemen yang diangkat kini di posisi keempat.

Struktur Data dan Algoritma di Python

Insertion sort - implementasi

def insertion_sort(my_list):
  for i in range(1, len(my_list)):

number_to_order = my_list[i]
j = i - 1
while j >= 0 and number_to_order < my_list[j]:
my_list[j + 1] = my_list[j]
j -= 1
my_list[j + 1] = number_to_order
return my_list
Struktur Data dan Algoritma di Python

Insertion sort - kompleksitas

  • Kasus terburuk: $O(n^2)$
  • Rata-rata: $\Theta(n^2)$
  • Kasus terbaik: $\Omega(n)$
Struktur Data dan Algoritma di Python

Ayo berlatih!

Struktur Data dan Algoritma di Python

Preparing Video For Download...