Daptar eusi[Sumputkeun][Témbongkeun]
Élmu komputer sadayana ngeunaan ngartos pajeulitna algoritma sareng struktur data.
Anjeun gaduh daptar barang anu kedah diurutkeun, tapi anjeun teu gaduh waktos atanapi sumberdaya pikeun ngagunakeun algoritma asihan anu langkung kompleks.
Asihan sisipan mangrupikeun salah sahiji algoritma asihan pangbasajanna, tapi tiasa lambat pikeun daptar anu ageung.
Palaksanaan sareng pamahaman anu gampang ngajantenkeun metode ieu janten paporit diantara programer. Éta sampurna pikeun daptar leutik atanapi nalika anjeun peryogi solusi anu gancang.
Dina tulisan blog ieu, urang bakal ningali pajeulitna waktos asihan sisipan. Algoritma ieu dipaké pikeun nyortir arrays, sarta ngabogaan runtime of O (n2). Ieu ngandung harti yén pajeulitna waktos naek kalawan ukuran array.
Nanging, algoritma ieu tiasa langkung gancang tibatan algoritma asihan anu sanés, sapertos quicksort.
Hayu urang tingali kumaha cara asihan sisipan jalanna!
Naon Dupi Insertion Sort Algoritma?
Hiji unsur dina hiji waktu, sisipan sortir ngahasilkeun Asép Sunandar Sunarya sortable, nu remen disebut daptar.
Salaku conto, asihan diterapkeun dina program komputer rumit sapertos kompiler, dimana urutan token penting pikeun interpretasi program.
Kumaha Insertion Sort Gawé?
Nalika kami nganggo sisipan diurutkeun pikeun nyortir hiji Asép Sunandar Sunarya, algoritma dimimitian ku manggihan item pangleutikna dina daptar tur inserting kana posisi bener.
Lajeng manggihan item pangleutikna salajengna jeung inserts kana posisi nu bener, jeung saterusna.
Algoritma jalan ku looping ngaliwatan daptar, ngabandingkeun unggal item jeung hiji nu asalna saméméh éta.
Upami barang-barangna aya dina urutan anu salah, algoritma swap aranjeunna. Éta teras pariksa ningali naha daptar diurutkeun, sareng upami éta, algoritmana réngsé.
Dina prakték, insertion sorts mindeng dilaksanakeun ngagunakeun sababaraha baris kode, sahingga hiji pilihan populér pikeun asihan arrays leutik. Nanging, pajeulitna waktos kedah dipertimbangkeun nalika ngagunakeun algoritma ieu.
contona:
Ieu conto kumaha cara asihan sisipan jalan. Urang bakal ngagunakeun susunan handap:
1, 2, 3, 4, 5, 6
Algoritma dimimitian ku manggihan item pangleutikna dina daptar, anu mangrupa 1. Ieu lajeng inserts kana posisi nu bener, posisi kahiji. Ieu lajeng manggihan item pangleutikna salajengna, nu 2. Ieu inserts kana posisi nu bener, nu posisi kadua.
Ieu lajeng manggihan item pangleutikna salajengna, nu 3. Ieu inserts kana posisi bener, nu posisi katilu.
Ieu lajeng manggihan item pangleutikna salajengna, nu 4. Ieu inserts kana posisi bener, nu posisi kaopat, jeung saterusna. Daptar ayeuna diurutkeun!
Urang tiasa ningali tina conto yén algoritma nyandak genep babandingan sareng swap pikeun nyortir daptar. Ieu sabab butuh n2 babandingan jeung swap pikeun nyortir daptar n item. Dina hal ieu, n = 6.
Kumaha Ngaronjatkeun Insertion Sort Time Complexity?
Sedengkeun insertion sort ngabogaan runtime O(n2), éta tiasa dironjatkeun ku ngagunakeun algoritma asihan anu langkung saé, sapertos quicksort.
Quicksort boga runtime O(n log n), nu leuwih gancang batan O(n2).
Nanging, dina sababaraha kasus, asihan sisipan tiasa langkung gancang tibatan quicksort.
Salaku conto, upami daptar parantos aya dina urutan, asihan sisipan bakal nyandak waktos langkung sakedik tibatan quicksort.
Dina prakték, insertion sorts mindeng dilaksanakeun ngagunakeun sababaraha baris kode, sahingga hiji pilihan populér pikeun asihan arrays leutik.
Nanging, pajeulitna waktos kedah dipertimbangkeun nalika ngagunakeun algoritma ieu.
Pajeulitna Waktos
Pajeulitna Kasus Parah O(n2):
Pajeulitna waktos naek sareng ukuran array. Butuh n2 babandingan jeung swap pikeun nyortir daptar n item.
Contona, upami urang boga hiji Asép Sunandar Sunarya ukuran 1000, algoritma bakal nyandak 1,000,000 babandinganana jeung swaps nyortir Asép Sunandar Sunarya.
Kompleksitas Kasus Pangalusna O(n):
Pajeulitna waktos sami sareng ukuran array input. abdi
t nyokot n babandingan jeung swaps pikeun nyortir daptar n item. Contona, anggap hiji Asép Sunandar Sunarya ukuran 5. Algoritma bakal nyandak lima babandinganana jeung swaps nyortir Asép Sunandar Sunarya.
Kompleksitas Pasualan Rata-rata O(n2):
Pajeulitna waktos aya antara pajeulitna kasus anu paling parah sareng anu pangsaéna dina hal ieu.
Butuh n2 babandingan jeung swap pikeun nyortir daptar n item.
Ku kituna, asihan sisipan mangrupakeun algoritma asihan stabil.
Naha Insertion Sort Stabil?
Insertion diurutkeun stabil sabab preserves urutan elemen sarua dina Asép Sunandar Sunarya input.
Ieu penting pikeun loba aplikasi, kayaning dimeunangkeun data atawa analisis finansial. Salaku conto, upami urang gaduh dua daptar nomer sareng hoyong ngabandingkeunana, urang kedah mastikeun yén urutan unsur dilestarikan.
Upami daptarna henteu diurutkeun, kami moal ngabandingkeunana sacara akurat.
Leave a Reply