7 Algoritma Yang Perlu Tahu Setiap Pengaturcara

7 Algoritma Yang Perlu Tahu Setiap Pengaturcara

Sebagai pelajar pengaturcaraan, anda mungkin telah mempelajari banyak algoritma yang berlainan sepanjang karier anda. Menjadi mahir dalam algoritma yang berbeza sangat mustahak untuk mana-mana pengaturcara.





Dengan begitu banyak algoritma, sangat sukar untuk menjejaki perkara penting. Sekiranya anda bersiap sedia untuk wawancara atau hanya menggunakan kemahiran anda, senarai ini akan menjadikannya agak mudah. Teruskan membaca kerana kami menyenaraikan algoritma yang paling penting untuk pengaturcara.





1. Algoritma Dijkstra

Edsger Dijkstra adalah salah satu saintis komputer yang paling berpengaruh pada zamannya, dan dia menyumbang banyak bidang sains pengkomputeran, termasuk sistem operasi, pembinaan penyusun, dan banyak lagi. Salah satu sumbangan Dijkstra yang paling terkenal adalah kepintaran algoritma jalur terpendeknya untuk grafik, juga dikenali sebagai Algoritma Jalan Terpendek Dijkstra.





Algoritma Dijkstra mencari jalur terpendek tunggal dalam grafik dari sumber ke semua bucu grafik. Pada setiap lelaran algoritma, titik ditambahkan dengan jarak minimum dari sumber dan yang tidak ada di jalan terpendek semasa. Ini adalah sifat tamak yang digunakan oleh algoritma Djikstra.

Graf Apsp dijkstra



Algoritma biasanya dilaksanakan menggunakan satu set. Algoritma Dijkstra sangat cekap apabila dilaksanakan dengan Min Heap; anda boleh mencari jalan terpendek hanya dalam masa O (V + ElogV) (V adalah bilangan bucu dan E adalah bilangan tepi dalam graf yang diberikan).

Algoritma Dijkstra mempunyai hadnya; ia hanya berfungsi pada graf yang diarahkan dan tidak diarahkan dengan tepi berat positif. Untuk bobot negatif, algoritma Bellman-Ford biasanya lebih disukai.





Soalan temu ramah biasanya merangkumi algoritma Djikstra, jadi kami sangat mengesyorkan untuk memahami perincian dan aplikasinya yang rumit.

2. Gabung Susun

Kami mempunyai beberapa algoritma penyortiran dalam senarai ini, dan penggabungan jenis adalah salah satu algoritma yang paling penting. Ini adalah algoritma penyusun yang cekap berdasarkan teknik pengaturcaraan Divide and Conquer. Dalam senario terburuk, penggabungan jenis dapat menyusun nombor n hanya dalam masa O (nlogn). Berbanding dengan teknik menyusun primitif seperti Susun Gelembung (yang memerlukan masa O (n ^ 2)), penggabungan adalah sangat berkesan.





Berkaitan: Pengenalan Algoritma Penggabungan

Dalam penggabungan jenis, susunan yang akan disusun berulang kali dipecah menjadi subarray sehingga setiap subarray terdiri daripada satu nombor. Algoritma rekursif kemudian berulang kali menggabungkan subarrays dan menyusun susunan.

mencetak senarai fail di tetingkap folder 10

3. Quicksort

Quicksort adalah algoritma penyortiran lain berdasarkan teknik pengaturcaraan Divide and Conquer. Dalam algoritma ini, elemen pertama dipilih sebagai pangsi, dan keseluruhan susunan kemudian dipartisi di sekitar pangsi ini.

Seperti yang anda mungkin meneka, pivot yang baik sangat penting untuk jenis yang cekap. Pivot boleh menjadi elemen rawak, elemen media, elemen pertama, atau elemen terakhir.

Pelaksanaan pintasan sering berbeza dalam cara memilih pangsi. Dalam kes biasa, quicksort akan menyusun array besar dengan pivot yang baik hanya dalam masa O (nlogn).

Pseudokod umum pintasan berulang kali membahagi susunan pada pangsi dan meletakkannya pada kedudukan subarray yang betul. Ia juga meletakkan elemen lebih kecil daripada pangsi di sebelah kiri dan elemen lebih besar daripada pangsi di sebelah kanannya.

Depth First Search (DFS) adalah salah satu algoritma grafik pertama yang diajar kepada pelajar. DFS adalah algoritma cekap yang digunakan untuk melintasi atau mencari grafik. Ia juga boleh diubahsuai untuk digunakan dalam melintasi pokok.

Kedalaman-pokok pertama

Lintasan DFS boleh bermula dari sebarang simpul sewenang-wenangnya, dan ia menyelam ke setiap bucu bersebelahan. Algoritma mundur ketika tidak ada bucu yang tidak dikunjungi, atau ada jalan buntu. DFS biasanya dilaksanakan dengan susunan dan susunan boolean untuk mengesan nod yang dikunjungi. DFS mudah dilaksanakan dan sangat berkesan; ia berfungsi (V + E), di mana V adalah bilangan bucu dan E adalah bilangan tepi.

Aplikasi khas DFS traversal merangkumi jenis topologi, mengesan kitaran dalam grafik, mencari jalan, dan mencari komponen yang sangat berkaitan.

Breadth-First Search (BFS) juga dikenali sebagai traversal urutan tingkat untuk pokok. BFS berfungsi dalam O (V + E) yang serupa dengan algoritma DFS. Walau bagaimanapun, BFS menggunakan barisan dan bukannya timbunan. DFS masuk ke dalam grafik, sedangkan BFS melintasi graf ke arah kiri.

bar tugas windows 10 tidak bertindak balas terhadap klik kiri

Algoritma BFS menggunakan barisan untuk mengesan bucu. Bucu bersebelahan yang tidak dikunjungi dikunjungi, ditandakan, dan diatur dalam barisan. Sekiranya bucu tidak mempunyai bucu bersebelahan, maka simpul dikeluarkan dari barisan dan diterokai.

BFS biasanya digunakan dalam jaringan peer-to-peer, jalur terpendek dari grafik tidak berbobot, dan untuk mencari pokok rentang minimum.

Pencarian Perduaan adalah algoritma mudah untuk mencari elemen yang diperlukan dalam susunan yang disusun. Ia berfungsi dengan berulang kali membahagi array menjadi dua. Sekiranya elemen yang diperlukan lebih kecil daripada elemen tengah, maka bahagian kiri elemen tengah diproses lebih jauh; jika tidak, bahagian kanan dibelah dua dan dicari lagi. Proses diulang sehingga elemen yang diperlukan dijumpai.

Kerumitan carian binari yang paling teruk adalah O (logn) yang menjadikannya sangat cekap dalam mencari tatasusunan linear.

7. Algoritma Pokok Rentang Minimum

Pokok rentang minimum (MST) graf mempunyai kos minimum di antara semua pokok rentang yang mungkin. Kos pokok rentang bergantung pada berat pinggirnya. Penting untuk diperhatikan bahawa terdapat lebih dari satu pokok rentang minimum. Terdapat dua algoritma MST utama, iaitu Kruskal dan Prim's.

Algoritma Kruskal 4a

Algoritma Kruskal mencipta MST dengan menambahkan kelebihan dengan kos minimum untuk set yang semakin meningkat. Algoritma ini terlebih dahulu menyusun tepi mengikut beratnya dan kemudian menambahkan sisi ke MST bermula dari minimum.

Penting untuk diperhatikan bahawa algoritma tidak menambah sisi yang membentuk kitaran. Algoritma Kruskal lebih disukai untuk grafik yang jarang.

Algoritma Prim juga menggunakan sifat tamak dan sangat sesuai untuk grafik padat. Idea utama dalam MST Prim adalah mempunyai dua set titik yang berbeza; satu set mengandungi MST yang sedang berkembang, sedangkan yang lain mengandungi bucu yang tidak digunakan. Pada setiap lelaran, kelebihan berat minimum yang akan menghubungkan dua set dipilih.

Algoritma pokok jangkauan minimum sangat penting untuk analisis kluster, taksonomi, dan rangkaian siaran.

Pengaturcara Cekap Mahir Dengan Algoritma

Pengaturcara sentiasa belajar dan mengembangkan kemahiran mereka, dan ada beberapa perkara penting yang perlu dimiliki oleh setiap orang. Seorang pengaturcara mahir mengetahui algoritma yang berbeza, faedah dan kekurangan masing-masing, dan algoritma mana yang paling sesuai untuk senario tertentu.

bagaimana membetulkan skrin kematian yang biru
Berkongsi Berkongsi Tweet E-mel Pengenalan Algoritma Susun Shell

Walaupun jenis shell bukan kaedah yang paling berkesan, pemula banyak memperoleh keuntungan daripada mempraktikkannya.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Pengaturcaraan
  • Algoritma
Mengenai Pengarang M. Fahad Judge(45 Artikel Diterbitkan)

Fahad adalah penulis di MakeUseOf dan kini mengambil jurusan Sains Komputer. Sebagai penulis teknologi yang gemar, dia memastikan dia sentiasa dikemas kini dengan teknologi terkini. Dia mendapati dirinya sangat berminat dengan bola sepak dan teknologi.

Lebih Banyak Dari M. Fahad Judge

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan