Video: SELECTION SHORT (LOGIKA ALGORITMA) 2024
Bayangkan cuba mencari item dalam senarai tanpa menyusunnya terlebih dahulu. Setiap carian menjadi carian berturut-turut yang memakan masa. Tetapi, satu kes boleh dibuat kerana tidak menyusun data untuk algoritma. Lagipun, data masih boleh diakses, walaupun anda tidak menyusunnya - dan penyortiran mengambil masa.
Sudah tentu, masalah dengan data yang tidak disortir adalah masalah yang sama seperti laci sampah di dapur anda (atau di mana pun anda mempunyai laci sampah anda - dengan mengandaikan bahawa anda boleh menemuinya sama sekali). Mencari apa-apa dalam laci sampah adalah memakan masa kerana anda tidak boleh mula meneka di mana untuk mencari sesuatu. Daripada merapatkan dan mengambil apa yang anda inginkan, anda mesti mengambil pelbagai perkara lain yang anda tidak mahu dalam usaha mencari satu item yang anda perlukan. Malangnya, barang yang anda perlukan mungkin tidak berada di dalam laci sampah di tempat pertama-anda mungkin telah membuangnya atau memasukkannya ke dalam laci yang berbeza.
Laci sampah di rumah anda sama seperti data yang tidak disertakan pada sistem anda. Apabila data tidak disokong, anda perlu mencari satu item pada satu masa, dan anda tidak tahu sama ada anda akan mendapati apa yang anda perlukan tanpa mencari setiap item dalam dataset terlebih dahulu. Ini cara mengecewakan untuk bekerja dengan data.
Sudah tentu, hanya mengisih data tidak mencukupi. Sekiranya anda mempunyai pangkalan data pekerja yang disusun mengikut nama terakhir, namun perlu mencari pekerja mengikut tarikh lahir, penyortiran tidak berguna. (Katakan anda ingin mencari semua pekerja yang mempunyai hari lahir pada hari tertentu.) Untuk mencari tarikh lahir yang anda perlukan, anda masih perlu mencari keseluruhan dataset satu item pada satu masa. Oleh itu, penyortiran mestilah memberi tumpuan kepada keperluan tertentu. Ya, anda memerlukan pangkalan data pekerja yang disusun oleh jabatan pada satu masa dan oleh nama terakhir pada masa yang lain, tetapi sekarang anda perlu disusun mengikut tarikh lahir untuk menggunakan dataset dengan berkesan.
Keperluan untuk mengekalkan beberapa pesanan yang disusun untuk data yang sama adalah alasan bahawa pemaju membuat indeks. Menyusun indeks kecil lebih cepat daripada menyusun seluruh dataset. Indeks mengekalkan susunan data khusus dan menunjuk ke dataset penuh supaya anda dapat mencari apa yang anda perlukan dengan sangat cepat. Dengan mengekalkan indeks bagi setiap keperluan jenis, anda boleh memotong masa akses data secara berkesan dan membolehkan beberapa orang mengakses data pada masa yang sama mengikut urutan yang mereka perlu mengaksesnya.
Banyak cara tersedia untuk mengkategorikan algoritma sorting. Salah satu daripada cara ini ialah kelajuan semacam itu. Apabila mempertimbangkan seberapa berkesan algoritma jenis tertentu dalam mengatur data, penanda aras masa biasanya melihat dua faktor:
- Perbandingan: Untuk memindahkan data dari satu lokasi dalam dataset ke yang lain, anda perlu tahu di mana untuk memindahkannya, yang bermaksud membandingkan data sasaran dengan data lain dalam dataset.Mempunyai perbandingan lebih sedikit bermakna prestasi yang lebih baik.
- Pertukaran: Bergantung kepada cara anda menulis algoritma, data mungkin tidak sampai ke lokasi akhirnya dalam dataset pada percubaan pertama. Data mungkin sebenarnya bergerak beberapa kali. Bilangan bursa mempengaruhi kelajuan dengan ketara kerana kini anda sebenarnya memindahkan data dari satu lokasi ke lokasi yang lain dalam ingatan. Pertukaran yang kurang dan lebih kecil (seperti ketika menggunakan indeks) bermakna prestasi yang lebih baik.