Video: Leap Motion SDK 2024
Semakin banyak operasi yang dibutuhkan algoritma, semakin kompleksnya. Kompleksitas adalah ukuran efisiensi algoritma dalam hal penggunaan waktu karena setiap operasi memakan waktu lama. Dengan masalah yang sama, algoritma kompleks umumnya kurang menguntungkan daripada algoritma sederhana karena algoritma kompleks memerlukan lebih banyak waktu.
Pikirkan saat-saat ketika kecepatan eksekusi membuat perbedaan, seperti di sektor medis atau keuangan, atau saat terbang dengan pilot otomatis di pesawat terbang atau roket ruang angkasa. Mengukur kompleksitas algoritma adalah tugas yang menantang, meski perlu jika Anda ingin menggunakan solusi yang tepat. Teknik pengukuran pertama menggunakan mesin abstrak seperti Random Access Machine (RAM).
RAM juga singkatan dari Random-Access Memory, yaitu memori internal yang digunakan komputer Anda saat menjalankan program. Meskipun menggunakan akronim yang sama, Random-Access Machine adalah sesuatu yang sama sekali berbeda.
Mesin abstrak bukan komputer nyata, tapi yang teoritis, komputer yang dibayangkan dalam fungsinya. Anda menggunakan mesin abstrak untuk mempertimbangkan seberapa baik algoritma akan bekerja pada komputer tanpa mengujinya pada hal yang sebenarnya, namun terikat oleh jenis perangkat keras yang akan Anda gunakan. Komputer RAM melakukan operasi aritmatika dasar dan berinteraksi dengan informasi di memori, itu saja. Setiap kali komputer RAM melakukan apapun, dibutuhkan langkah waktu (unit waktu). Ketika Anda mengevaluasi sebuah algoritma dalam simulasi RAM, Anda menghitung langkah waktu dengan menggunakan prosedur berikut:
- Break operasi kompleks menjadi operasi aritmatika sederhana dan menghitung langkah waktu seperti yang didefinisikan pada Langkah 1.
- Hitung setiap akses data dari memori sebagai satu langkah waktu.
- Untuk melakukan akuntansi ini, Anda menulis versi algoritma pseudocode dan melakukan langkah-langkah ini dengan menggunakan kertas dan pensil. Pada akhirnya, ini adalah pendekatan sederhana berdasarkan gagasan dasar tentang bagaimana komputer bekerja, perkiraan berguna yang dapat Anda gunakan untuk membandingkan solusi terlepas dari kekuatan dan kecepatan perangkat keras Anda atau bahasa pemrograman yang Anda gunakan.