Bab lan Paragraf[Singidaken][Tampilake]
Ilmu komputer kabeh babagan ngerteni kerumitan algoritma lan struktur data.
Sampeyan duwe dhaptar item sing kudu diurutake, nanging sampeyan ora duwe wektu utawa sumber daya kanggo nggunakake algoritma ngurutake sing luwih rumit.
Ngurutake sisipan minangka salah sawijining algoritma pangurutan sing paling gampang, nanging bisa alon kanggo dhaptar gedhe.
Implementasi lan pangerten sing gampang nggawe metode iki dadi favorit ing antarane programer. Iku sampurna kanggo dhaptar cilik utawa yen sampeyan butuh solusi cepet.
Ing kirim blog iki, kita bakal ndeleng kerumitan wektu ngurutake sisipan. Algoritma iki digunakake kanggo ngurutake array, lan nduweni runtime O(n2). Iki tegese kerumitan wektu mundhak kanthi ukuran array.
Nanging, algoritma iki bisa luwih cepet tinimbang algoritma pangurutan liyane, kayata quicksort.
Ayo dideleng kanthi cetha babagan cara ngurutake sisipan!
Apa Algoritma Insertion Sort?
Siji unsur ing siji wektu, ngurutake sisipan ngasilake array sing bisa diurut, sing asring diarani minangka dhaptar.
Contone, ngurutake ditrapake ing program komputer sing rumit kayata kompiler, ing ngendi urutan token penting kanggo interpretasi program kasebut.
Kepiye Cara Ngurutake Sisipan?
Nalika kita nggunakake insertion sort kanggo ngurutake array, algoritma diwiwiti kanthi nemokake item paling cilik ing dhaptar lan nglebokake menyang posisi sing bener.
Banjur nemokake item paling cilik sabanjure lan nglebokake menyang posisi sing bener, lan liya-liyane.
Algoritma dianggo kanthi ngubengi dhaptar, mbandhingake saben item karo sing sadurunge.
Yen item kasebut ana ing urutan sing salah, algoritma ngganti. Iku banjur mriksa kanggo ndeleng apa dhaftar wis diurutake, lan yen iku, algoritma ends.
Ing laku, ngurutake sisipan asring dileksanakake nggunakake sawetara baris kode, dadi pilihan populer kanggo ngurutake array cilik. Nanging, kerumitan wektu kudu dianggep nalika nggunakake algoritma iki.
Conto:
Iki minangka conto babagan cara ngurutake sisipan. Kita bakal nggunakake array ing ngisor iki:
1, 2, 3, 4, 5, 6
Algoritma diwiwiti kanthi nemokake item paling cilik ing dhaptar, yaiku 1. Banjur dilebokake ing posisi sing bener, posisi pisanan. Banjur nemokake item paling cilik sabanjure, yaiku 2. Dilebokake ing posisi sing bener, yaiku posisi kaping pindho.
Banjur nemokake item paling cilik sabanjure, yaiku 3. Dilebokake ing posisi sing bener, yaiku posisi katelu.
Banjur nemokake item sing paling cilik sabanjure, yaiku 4. Dilebokake ing posisi sing bener, yaiku posisi kaping papat, lan liya-liyane. Dhaptar saiki wis diurutake!
Kita bisa ndeleng saka conto yen algoritma njupuk enem mbandhingake lan swap kanggo ngurutake dhaptar. Iki amarga njupuk n2 bandingaken lan swap kanggo ngurutake dhaptar n item. Ing kasus iki, n = 6.
Carane Ngapikake Insertion Sort Time Complexity?
Nalika ngurutake sisipan nduweni runtime O(n2), bisa ditingkatake kanthi nggunakake algoritma pangurutan sing luwih apik, kayata quicksort.
Quicksort nduweni runtime O(n log n), sing luwih cepet tinimbang O(n2).
Nanging, ing sawetara kasus, ngurutake sisipan bisa luwih cepet tinimbang quicksort.
Contone, yen dhaptar wis diurutake, ngurutake sisipan bakal njupuk wektu luwih sithik tinimbang quicksort.
Ing laku, ngurutake sisipan asring dileksanakake nggunakake sawetara baris kode, dadi pilihan populer kanggo ngurutake array cilik.
Nanging, kerumitan wektu kudu dianggep nalika nggunakake algoritma iki.
Kompleksitas Wektu
Kompleksitas Kasus Paling Elek O(n2):
Kerumitan wektu mundhak kanthi ukuran array. Butuh n2 bandingaken lan swap kanggo ngurutake dhaptar n item.
Contone, yen kita duwe array ukuran 1000, algoritma bakal njupuk 1,000,000 mbandhingake lan swap kanggo ngurutake array.
Kompleksitas Kasus Paling apik O(n):
Kompleksitas wektu padha karo ukuran array input. aku
t njupuk n bandingaken lan swap kanggo ngurutake dhaftar n item. Contone, nimbang array ukuran 5. Algoritma bakal njupuk limang bandingaken lan swap kanggo ngurutake array.
Kompleksitas Kasus Rata-rata O(n2):
Kerumitan wektu ana ing antarane kerumitan kasus paling awon lan paling apik ing kasus iki.
Butuh n2 bandingaken lan swap kanggo ngurutake dhaptar n item.
Mangkono, ngurutake sisipan minangka algoritma pangurutan sing stabil.
Napa Insertion Sort Stabil?
Urut sisipan stabil amarga njaga urutan unsur sing padha ing array input.
Iki penting kanggo akeh aplikasi, kayata njupuk data utawa analisis finansial. Contone, yen kita duwe rong dhaptar nomer lan pengin mbandhingake, kita kudu mesthekake yen urutan unsur tetep.
Yen dhaptar ora diurutake, kita ora bakal mbandhingake kanthi akurat.
Ninggalake a Reply