Latihan 1: Selection Sort — Algoritma

Latihan 1 dari materi Selection Sort di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi function selectionSort(arr) supaya mengurutkan arr dari kecil ke besar dengan selection sort, lalu mengembalikan array-nya.

  1. Loop i dari index 0. Di awal tiap pass, simpan minIdx = i.
  2. Loop j dari i + 1 sampai akhir. Kalau arr[j] lebih kecil dari arr[minIdx], simpan j sebagai minIdx.
  3. Sesudah loop j selesai, tukar arr[i] dengan arr[minIdx]. Cukup satu tukar per pass.
  4. Sesudah semua pass, return arr. Kode awalnya belum punya return, jadi tambahkan.

Tiga baris console.log di kode awal harus mencetak persis ini, berurutan:

  1. 11,12,22,25,64
  2. 1,2,4,5,8
  3. 3,3,3

Function-mu juga diuji dengan array lain yang berisi angka negatif: selectionSort([9, -3, 0, 5]).join(",") harus menghasilkan -3,0,5,9.

Ada juga cek yang menghitung berapa kali isi array ditulis: mengurutkan 50 angka dari 50 turun ke 1 harus menghasilkan 1 di depan dan 50 di belakang dengan paling banyak 98 kali tulis, yaitu satu tukar per pass. Bubble sort yang menukar tetangga berkali-kali gak lolos, dan arr.sort() gak boleh dipakai.

Hint