Video: RPC-831 AEGIS V8.3.1 | gamma-purple | mechanical / sapient hazard 2024
Sebahagian daripada Algoritma Untuk Menipu Cheat Sheet
Anda sudah mengetahui bahawa algoritma adalah kompleks. Walau bagaimanapun, anda perlu tahu bagaimana algoritma kompleks adalah kerana yang lebih kompleks adalah, semakin lama diperlukan untuk dijalankan. Jadual berikut membantu anda memahami pelbagai tahap kerumitan yang disampaikan dalam rangka masa berlalu (dari terpantas hingga paling lambat).
Kerumitan | Deskripsi |
Kerumitan malar O (1) | Menyediakan masa pelaksanaan yang tidak menentu, tidak kira berapa banyak input yang anda berikan. Setiap masukan memerlukan satu unit masa pelaksanaan. |
Kerumitan logaritma O (log n) | Bilangan operasi berkembang pada kadar yang lebih perlahan daripada input, menjadikan algoritma kurang efisien dengan input kecil dan lebih efisien dengan yang lebih besar. Algoritma khas kelas ini ialah pencarian binari. |
Kerumitan linear O (n) | Operasi berkembang dengan input dalam nisbah 1: 1. Algoritma biasa adalah lelaran, apabila anda mengimbas input sekali dan memohon operasi ke setiap elemen. |
Kerumitan linearitma O (n log n) | Kerumitan adalah gabungan antara kerumitan logaritma dan kerumitan linear. Ia adalah tipikal dari beberapa algoritma pintar yang digunakan untuk memerintahkan data, seperti Mergesortsort, Heapsort, dan Quicksort. |
Kompleks kuadratik O (n 2 ) | Operasi berkembang sebagai satu segi bilangan input. Apabila anda mempunyai satu lelaran dalam lelaran lain (disebut lelaran bersarang dalam sains komputer), anda mempunyai kerumitan kuadratik. Sebagai contoh, anda mempunyai senarai nama dan, untuk mencari yang paling serupa, anda membandingkan setiap nama terhadap semua nama lain. Sesetengah algoritma pesanan yang kurang efisien memberikan kerumitan sedemikian: jenis gelembung, semakan pemilihan, dan jenis penyisipan. Tahap kerumitan ini bermakna bahawa algoritma anda mungkin berjalan selama berjam-jam atau bahkan beberapa hari sebelum mencapai penyelesaian. |
Kerumitan padu O (n 3 ) | Operasi berkembang lebih cepat daripada kerumitan kuadratik kerana sekarang anda mempunyai banyak lelaran bersarang. Apabila algoritma mempunyai kerumitan susunan ini dan anda perlu memproses jumlah data yang sederhana (100, 000 elemen), algoritma anda mungkin berjalan selama bertahun-tahun. Apabila anda mempunyai beberapa operasi yang merupakan kuasa input, lazimnya merujuk kepada algoritma seperti yang berjalan dalam masa polinomial. |
Kepekaan eksponen O (2 n ) | Algoritma ini mengambil dua kali bilangan operasi sebelumnya untuk setiap elemen baru ditambah. Apabila algoritma mempunyai kerumitan ini, walaupun masalah kecil mungkin mengambil masa selama-lamanya. Banyak algoritma yang melakukan carian menyeluruh mempunyai kerumitan yang eksponen. Walau bagaimanapun, contoh klasik untuk tahap kerumitan ini ialah pengiraan nombor Fibonacci. |
Factorial complexity O (n!) | Algoritma ini memberikan mimpi ngeri yang rumit kerana banyak kemungkinan gabungan antara unsur-unsur. Cuba bayangkan: Jika input anda adalah 100 objek, dan operasi pada komputer anda mengambil masa 10 -6 saat (kelajuan yang munasabah untuk setiap komputer hari ini), anda memerlukan lebih kurang 10 140 untuk menyelesaikan tugas dengan jayanya (jumlah masa yang mustahil kerana usia alam semesta dianggarkan sebagai 10 14 tahun). Masalah kerumitan faktorial yang terkenal adalah masalah jualan jurugambar, di mana seorang jurujual perlu mencari jalan terpendek untuk melawat banyak bandar dan kembali ke bandar permulaan. |