Latihan 1 dari materi Merge Sort di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function di starter supaya angka diurutkan dari kecil ke besar dengan merge sort:
merge(left, right): terima dua array yang sudah terurut, kembalikan satu array terurut berisi semua angka keduanya.
mergeSort(arr): kalau panjangnya 0 atau 1, kembalikan arr. Kalau gak, belah array jadi dua di tengah, urutkan tiap separuh dengan memanggil mergeSort lagi, lalu gabungkan dengan merge.
Dua console.log di starter harus mencetak persis:
baris pertama: 3,9,10,27,38,43,82
baris kedua: 1,2,3,4,5,6
Hint
Mulai dari merge. Bayangkan dua tumpukan kartu yang sudah urut: ambil kartu paling atas yang lebih kecil, ulangi sampai salah satu tumpukan habis, lalu tempel sisa tumpukan lainnya.
Di merge, pakai dua penunjuk i dan j yang mulai dari 0 dan loop while selama dua-duanya belum habis. Di mergeSort, index tengahnya Math.floor(arr.length / 2), lalu ambil separuh kiri dan kanan seperti contoh di materi.