Saya bahkan bukan mahasiswa CS, jadi ini mungkin pertanyaan bodoh, tapi tolong bawa saya ...
Di era pra-komputer, kita hanya bisa menerapkan struktur data array dengan sesuatu seperti array laci. Karena salah satu harus mencari laci dengan sesuai indeks sebelum penggalian nilai dari itu, kompleksitas waktu array lookup , dengan asumsi pencarian biner.
Namun, penemuan komputer membuat perbedaan besar. Komputer modern dapat membaca dari RAM mereka begitu cepat sehingga kami sekarang menganggap kompleksitas waktu pencarian array menjadi (bahkan secara teknis tidak demikian, karena dibutuhkan lebih banyak waktu untuk memindahkan register pada jarak yang lebih jauh, dll)
Contoh lain adalah kamus Python. Sementara orang mungkin mendapatkan kompleksitas akses kamus dengan metode magis kelebihan penulisan yang buruk (atau nasib buruk yang sangat buruk, yaitu kunci yang memiliki banyak tabrakan hash), biasanya dianggap O ( 1 ) . Dalam hal ini, kompleksitas waktu tergantung pada implementasi tabel hash dari kamus Python, dan implementasi kunci dari fungsi hash.__hash__
Apakah ini menyiratkan bahwa perangkat keras / implementasi dapat mempengaruhi kompleksitas waktu dari algoritma? (Walaupun kedua contoh adalah tentang struktur data, bukan algoritma, yang terakhir dibangun di atas yang sebelumnya, dan saya belum pernah mendengar tentang kompleksitas waktu struktur data, jadi saya menggunakan istilah "algoritma" di sini)
Bagi saya, algoritma itu abstrak dan konseptual, yang sifat-sifatnya seperti kompleksitas ruang / waktu tidak boleh terpengaruh oleh apakah mereka diterapkan dengan cara tertentu, tetapi apakah itu?