Saya memiliki definisi algoritma in-situ dari profesor, tetapi saya tidak memahaminya.
Algoritma in-situ merujuk pada algoritma yang beroperasi dengan Θ (1) memori.
Apa artinya?
Saya memiliki definisi algoritma in-situ dari profesor, tetapi saya tidak memahaminya.
Algoritma in-situ merujuk pada algoritma yang beroperasi dengan Θ (1) memori.
Apa artinya?
Jawaban:
Pertama, mari kita bongkar apa artinya .
Besar , dan Θ besar , adalah kelas fungsi. Ada definisi formal di sini , tapi untuk tujuan pertanyaan ini, kita mengatakan bahwa fungsi f adalah di O ( 1 ) jika ada konstan c mana, untuk semua x , f ( x ) ≤ C . Artinya, f tumbuh paling cepat secepat fungsi konstan.
Big- tidak banyak berarti untuk fungsi konstan, karena ketika menggambarkan algoritma waktu atau penggunaan ruang, tidak ada banyak di bawah konstanta. Tetapi untuk menjelaskan apa artinya, f ∈ Θ ( 1 ) jika ada beberapa konstanta c , d sedemikian rupa sehingga, untuk semua x , d ≤ f ( x ) ≤ c . Yaitu, f tumbuh setidaknya secepat, dan paling cepat secepat, sebagai fungsi konstan.
Sekarang apa hubungannya dengan penggunaan memori? Pertimbangkan beberapa algoritma . Ada beberapa fungsi (matematis) yang, diberi input n , memberikan penggunaan memori maksimum dari algoritma Anda A pada setiap input ukuran n . Sebut saja fungsi ini m e m .
Jadi, sekarang kami menggabungkan dua konsep kami. Jika suatu algoritma menggunakan memori, maka fungsi penggunaan memorinya ada di Θ ( 1 ) , artinya ada beberapa d , c sehingga, untuk input apa pun, memori yang digunakan adalah antara d dan c .
Singkatnya, ini berarti bahwa penggunaan memori dari algoritma berada dalam kisaran konstan, terlepas dari input.
Biasanya, fungsi memori tidak memperhitungkan memori yang digunakan untuk menyimpan input ke algoritma, karena jika tidak, penggunaan memori akan selalu setidaknya .
Kompleksitas ruang konstan algoritma
Jumlah memori yang digunakan algoritma Anda tidak tergantung input.
Algoritma dikatakan memiliki kompleksitas ruang konstan jika menggunakan jumlah ruang tetap. Itu bisa variabel atau array persis 10 elemen.
Namun, algoritma In-situ melakukan fungsi yang dimaksudkan pada input itu sendiri dan dengan demikian membutuhkan ruang ekstra yang sangat sedikit atau tidak ada. Input biasanya ditimpa oleh output saat algoritma dijalankan. ( ref )
Algoritma in-situ tidak mempertimbangkan ruang yang ditempati oleh input dan hanya memperhitungkan ruang ekstra, sambil menghitung kompleksitas ruang.