Tidak ada satu model komputasi yang benar-benar memuaskan di mana untuk menganalisis algoritma sedih, bahkan dalam apa yang mungkin dianggap sebagai pengaturan tradisional. Itu dengan asumsi semua data mudah diakses dan ruang kerja tidak terikat secara efektif.
Mesin Turing multi-tape, secara teoritis ditentukan dengan baik dan banyak algoritma telah dirancang dan dianalisis dalam model ini selama bertahun-tahun. Namun, bagi sebagian orang itu tidak cukup erat kaitannya dengan bagaimana komputer nyata bekerja untuk benar-benar menjadi model yang baik untuk digunakan di abad ke-21. Di sisi lain, model kata-RAM telah menjadi populer dan tampaknya menangkap lebih akurat kerja komputer modern (operasi kata-kata bukan bit, akses waktu yang konstan ke lokasi memori). Namun, ada aspek yang kurang ideal. Misalnya, tidak ada model RAM satu kata. Pertama-tama kita harus menentukan operasi kata mana yang diizinkan dalam waktu konstan. Ada banyak opsi untuk ini tanpa jawaban tunggal yang diterima. Kedua, ukuran kata w biasanya diatur untuk tumbuh dengan ukuran input (yang setidaknya secepat log (n)) untuk memungkinkan setiap item dalam memori ditangani dengan menggunakan jumlah kata yang konstan. Ini berarti bahwa seseorang harus membayangkan kelas mesin tanpa batas di mana algoritma Anda dijalankan atau bahkan lebih buruk, bahwa mesin berubah ketika Anda memberinya lebih banyak data. Setidaknya ini adalah pemikiran yang paling membingungkan di antara murid-murid saya. Akhirnya, Anda mendapatkan hasil kompleksitas yang agak mengejutkan dengan model word-RAM yang mungkin tidak cocok dengan yang dipelajari sebagai siswa. Sebagai contoh, perkalian dua angka n-bit adalah O (n) waktu dalam model ini dan hanya membaca dalam string n-bit adalah operasi waktu sublinear secara tiba-tiba. Ini berarti bahwa seseorang harus membayangkan kelas mesin tanpa batas di mana algoritma Anda dijalankan atau bahkan lebih buruk, bahwa mesin berubah ketika Anda memberinya lebih banyak data. Setidaknya ini adalah pemikiran yang paling membingungkan di antara murid-murid saya. Akhirnya, Anda mendapatkan hasil kompleksitas yang agak mengejutkan dengan model word-RAM yang mungkin tidak cocok dengan yang dipelajari sebagai siswa. Misalnya, perkalian dua angka n-bit adalah O (n) waktu dalam model ini dan hanya membaca dalam string n-bit adalah operasi waktu sublinear tiba-tiba. Ini berarti bahwa seseorang harus membayangkan kelas mesin tanpa batas di mana algoritma Anda dijalankan atau bahkan lebih buruk, bahwa mesin berubah ketika Anda memberinya lebih banyak data. Setidaknya ini adalah pemikiran yang paling membingungkan di antara murid-murid saya. Akhirnya, Anda mendapatkan hasil kompleksitas yang agak mengejutkan dengan model word-RAM yang mungkin tidak cocok dengan yang dipelajari sebagai siswa. Sebagai contoh, perkalian dua angka n-bit adalah O (n) waktu dalam model ini dan hanya membaca dalam string n-bit adalah operasi waktu sublinear secara tiba-tiba.
Setelah mengatakan semua itu, jika Anda hanya ingin tahu apakah algoritme Anda kemungkinan akan berjalan cepat, kemungkinan besar akan dilakukan :-)