Kompleksitas Waktu memberi tahu kita tentang berapa lama suatu algoritme dijalankan, relatif terhadap ukuran inputnya. Ini adalah cara cepat untuk memahami kinerja relatif dari suatu algoritma Show
Grafik di bawah ini memberi kita gambaran singkat tentang kerumitan waktu yang akan kita bahas dalam artikel ini Daftar Isi Pada artikel ini, saya akan berbicara tentang Kompleksitas Waktu, apa itu BigO, dan bagaimana BigO membantu kami meningkatkan algoritme kami Jadi mari kita mulai dengan apa itu Kompleksitas Waktu 1. Apa itu Kompleksitas WaktuKompleksitas Waktu adalah berapa banyak waktu yang dibutuhkan algoritma untuk mengeksekusi. Tapi kami tidak akan menghitung waktu yang tepat untuk eksekusi algoritma. Alih-alih itu, kita akan menghitung seberapa besar pengaruh ukuran input terhadap waktu eksekusi algoritme kita 2. Apa itu BigO?
Misalnya, kami memiliki Sekarang kita telah melihat apa yang dimaksud dengan Kompleksitas Waktu dan BigO, mari kita lihat notasi BigO seperti apa yang kita miliki dan apa artinya 3. O(1) Waktu KonstanAlgoritme yang kompleksitas waktunya tidak berubah dengan ukuran input. Sesederhana itu Misalnya, mendapatkan elemen pertama dari daftar. Ukuran input tidak memengaruhi algoritme ini, karena elemen pertama selalu yang pertama tidak peduli berapa banyak ukuran inputnya
4. O(logn) Waktu LogaritmikBerikut adalah referensi cepat untuk "Apa itu Logaritma". https. //byjus. com/matematika/logaritma/. Algoritme logaritmik membagi daftar atau struktur data lainnya menjadi bagian yang lebih kecil setiap kali dijalankan Contoh terbaik dari algoritme yang memiliki Kompleksitas Waktu Mari kita lihat implementasinya _Izinkan saya menjelaskan tentang algoritme ini dalam bahasa Inggris
Dibandingkan dengan Pencarian Linier (Berurutan). 5. O(n) Waktu LinierDalam algoritma waktu linier, setiap elemen dalam input dikunjungi sekali. Saat ukuran masukan bertambah, waktu berjalan algoritme kami bertambah persis dengan ukuran masukan Pencarian linier adalah contoh algoritma kompleksitas linier Berikut implementasinya
6. O(n^2) Waktu PolinomialAlgoritme yang dapat mengunjungi setiap elemen satu kali adalah algoritme linier, Tetapi bagaimana jika Anda memiliki loop bersarang, seperti dalam contoh ini?
Jika ini adalah 0, karena 1Bubble Sort adalah contoh yang sangat bagus untuk ini _Algoritme bubble sort mengambil angka pertama dan menukarnya dengan angka yang berdekatan jika urutannya salah. Ini dilakukan untuk setiap angka sampai semua angka berada dalam urutan yang benar - dan dengan demikian diurutkan 7. O(2^n) Waktu EksponensialIni benar-benar yang terburuk karena paling lambat Waktu eksponensial adalah 2, sehingga runtime tumbuh secara eksponensial dengan ukuran inputKatakanlah kita memiliki kata sandi yang hanya terdiri dari angka (jadi itu 10 angka, 0 hingga 9). kami ingin memecahkan kata sandi yang memiliki panjang n, jadi untuk memaksa melalui setiap kombinasi kami akan memiliki 3Sebagai contoh, katakanlah kita ingin membuat kata sandi yang panjangnya 15 karakter. Jumlah semua kombinasi akan sama dengan 4Contoh algoritma waktu eksponensial adalah perhitungan rekursif angka Fibonacci
Jadi, jelas kita tidak ingin menggunakan algoritme yang memiliki 5 bukan? Katakanlah kita harus menghitung 6. Kita perlu melakukan ini
Seperti yang Anda lihat, kita harus menghitung _7 dua kali. Mengapa tidak menghitungnya satu kali dan menggunakan hasil yang sama lagi? . Berikut adalah artikel untuk mempelajari lebih lanjut tentang ituJangan lupa bahwa mengetahui kompleksitas waktu memungkinkan kita membangun algoritme yang lebih baik. Kami dapat menggunakan pengetahuan kami untuk meningkatkan algoritme karena kami tahu apa yang menyebabkan kompleksitas waktu yang lebih buruk atau lebih baik Jika Anda ingin memvisualisasikan algoritme yang kami bahas dan lainnya, Anda dapat mengunjungi visualgo Berikut adalah grafik di mana Anda dapat melihat kompleksitas waktu yang kami bahas Terima kasih telah membaca dan saya harap ini membantu Anda Jika Anda ingin melihat artikel saya yang lain dan melihat postingan tentang Python dan Pengembangan Backend, lihat Twitter dan Blog saya Bagaimana Anda menemukan kompleksitas waktu suatu fungsi di Python?— Buat variabel dan hemat waktu setelah algoritme dijalankan, sebut saja end1. — Kurangi akhir1 dengan awal1 (akhir1 — awal1) dan simpan selisihnya ke dalam variabel yang disebut runtime . Waktu proses ini adalah berapa lama waktu yang diperlukan untuk mengeksekusi fungsi/algoritma Anda.
Berapa kompleksitas waktu dari fungsi set di Python?Kompleksitas waktu ini adalah O(len(s1) + len(s2)) di mana s1 dan s2 adalah dua himpunan yang kebutuhan penyatuannya . Persimpangan. - Ini dapat dilakukan melalui persimpangan () atau dan operator. Elemen Umum dipilih. Mereka mirip dengan iterasi atas daftar Hash dan menggabungkan nilai yang sama pada kedua Tabel.
Apa kompleksitas waktu dari suatu fungsi?Kompleksitas waktu didefinisikan sebagai jumlah waktu yang dibutuhkan oleh algoritme untuk berjalan, sebagai fungsi dari panjang masukan . Ini mengukur waktu yang dibutuhkan untuk mengeksekusi setiap pernyataan kode dalam suatu algoritma. Itu tidak akan memeriksa total waktu eksekusi suatu algoritma.
Berapa kompleksitas waktu str () dengan Python?__str__ memiliki kompleksitas runtime O(m*n) di mana m adalah jumlah digit biner dan n adalah jumlah digit desimal. |