Bisakah kompleksitas waktu Big-Oh mengandung lebih dari satu variabel?

11

Mari kita katakan misalnya saya sedang melakukan pemrosesan string yang memerlukan analisis dua string. Saya tidak punya informasi tentang panjang badan mereka, jadi mereka berasal dari dua keluarga berbeda. Apakah dapat diterima untuk memanggil kompleksitas suatu algoritma atau O ( n + m ) (tergantung pada apakah kita menggunakan algoritma naif atau yang dioptimalkan)?O(nm)O(n+m)

Pada nada yang sama, mari kita anggap algoritma yang kita pilih sebenarnya membutuhkan dua tahap - fase pengaturan pada string pertama yang memungkinkan kita untuk memproses sejumlah string lain tanpa menimbulkan biaya awal. Apakah dianggap layak untuk mengatakan bahwa ia memiliki konstruksi diikuti oleh sejumlah perhitungan O ( m ) ?O(n)O(m)

Apakah pantas menyebut mereka karena kedua perhitungan itu linear?O(n)

corsiKa
sumber
Lihat komentar pada jawaban ini untuk sedikit latar belakang - rasa hormat saya kepada @corsiKa karena berani mengajukan pertanyaan yang kontroversial.
OldCurmudgeon
nmmn
@DW Mungkin OldCurmudgeon hanya belajar definisi yang berbeda di sekolah ... seperti yang saya tunjukkan dalam komentar di bawah ini, mungkin untuk menghindari beberapa variabel, meskipun saya tidak pernah benar-benar berpikir untuk melakukannya sampai sekarang. Mungkin ini - atau sesuatu seperti itu - dulu standar?
Patrick87
2
Saya pikir ini memiliki jawaban yang cukup di sini dan di sini .
Raphael

Jawaban:

14

Ya tentu saja. Ini bagus dan bisa diterima. Adalah umum dan standar untuk melihat algoritma yang waktu operasinya tergantung pada dua parameter.

O(n+m)nmcn0,m0c(n+m)n>n0,m>m0f(n,m)f(n,m)=O(n+m)c,n0,m0n>n0m>m0f(n,m)c(n+m).

O(n)O(m)

nmO(n)nnn=m=

O(n)m=O(n)m=O(n)m+n=O(n)O(m+n)O(n)m=O(n)O(n)

Ini barang dasar. Anda akan menemukannya di seluruh buku teks algoritma.

DW
sumber
1
@ OldCurmudgeon, kemungkinan besar Anda akan menemukan contoh ini di banyak buku teks algoritma standar. Apa yang sudah Anda lihat? Sudahkah Anda mencoba melihat bab tentang pencarian mendalam-pertama (contoh yang saya sebutkan dalam jawaban saya)?
DW
2
OO(V+E)(V,E)
2
n
1
Saya setuju sejauh semua orang menggunakan notasi Landau dengan cara ini, tetapi hampir tidak ada yang tahu apa artinya sebenarnya (kecuali jika Anda menghubungkan parameter secara fungsional). Lihat juga artikel yang ditautkan dalam jawaban A. Schulz di sini yang dimulai dengan menyatakan bahwa penggunaan "dasar" dan "umum" salah.
Raphael
1
@ Patrick87 Teori kompleksitas menggunakan, berdasarkan definisi dari banyak kelas terkenal, sebagian besar panjang input (dengan pengecualian penting). Analisis algoritma adalah - ketika dilakukan dengan serius - tertarik untuk mempelajari sesuatu tentang penggunaan sumber daya aktual (sejauh model memungkinkan) sehingga parameter lain menjadi lebih menarik untuk mengecat seluruh gambar (lebih akurat).
Raphael