Dari apa yang saya lihat, tampaknya notasi O besar dan kompleksitas waktu dan memori banyak ditekankan dalam pendidikan ilmu komputer formal ... betapapun otodidak, persepsi ini didasarkan pada mendengar dan membaca apa yang orang-orang dengan pendidikan seperti itu. katakan dan tulis.
Meskipun saya percaya ide dan konsep umum itu penting, saya tidak percaya formalisasi itu (seperti notasi O besar dan berbagai terminologi) hampir sama artinya, kecuali untuk keperluan komunikasi. Hanya karena seseorang tidak terbiasa dengan notasi formal dan terminologi tidak berarti mereka tidak dapat melihat bagaimana dan mengapa satu algoritma akan lebih cepat daripada yang lain dalam kasus tertentu. Orang-orang dapat melihat bahwa waktu yang dibutuhkan untuk mencari pohon biner seimbang berkaitan dengan logaritma basis-2 dari jumlah node tanpa terlebih dahulu belajar tentang teori kompleksitas dalam pengertian formal, jika mereka memahami cara kerja pohon dan memiliki pemahaman yang tinggi tentang tinggi. matematika sekolah. Sangat penting untuk mengetahui kapan harus memperhatikan kompleksitas dan penggunaan memori, dan untuk mempertimbangkan kasus-kasus tipikal dan terburuk, meskipun ... tetapi beberapa orang tidak.
Notasi dan terminologi menjadi penting untuk komunikasi. Mereka memberikan cara yang bagus untuk menyampaikan kuantifikasi kinerja suatu algoritma kepada orang lain. Karena sering muncul dalam makalah dan penjelasan, penting untuk memiliki setidaknya pemahaman yang samar-samar sehingga lebih mudah untuk diikuti.
Jadi ya, konsepnya penting (meskipun kurang begitu ketika sumber daya dan waktu cukup tetapi data tidak). Tetapi meskipun konsep-konsep itu penting, formalisasi konsep-konsep itu seringkali tidak begitu penting - dan orang perlu mengingat bahwa notasi dan terminologi tidak sama dengan konsep-konsep itu sendiri.
Edit:
Saya tidak akan mengklaim memahami konsep sedetil seseorang yang secara formal belajar, tetapi banyak ide umum masuk akal. Saya pikir ada nilai dalam mempelajari secara formal ini, tetapi beberapa dari nilai itu masih bisa ada tanpa.
Adapun untuk memperkenalkan konsep-konsep (di luar studi formal), saya pikir awal yang baik adalah untuk mendorong orang untuk berpikir tentang berapa banyak memori overhead yang dimiliki struktur data, langkah-langkah apa yang melibatkan algoritma, dan bagaimana hal-hal ini berubah dengan data yang berbeda.
Ini juga membantu untuk mempertimbangkan situasi dan perubahan hipotetis, seperti mempertimbangkan apa yang terjadi jika pohon seimbang versus apa yang terjadi jika itu tidak seimbang mungkin, atau berapa banyak tingkat ke dalam pohon sebagian besar node akan, atau berapa banyak lagi node yang bisa tahan jika kedalamannya ditingkatkan satu tingkat. Cara berpikir seperti ini umumnya bermanfaat bagi programmer, tidak hanya ketika melihat kompleksitas; dan jika diterapkan untuk berpikir tentang bagaimana algoritma dan struktur data melakukan dalam keadaan yang berbeda itu secara alami menunjuk ke arah yang sama dengan pemeriksaan kompleksitas yang lebih formal.
O(n^2)
artinya.