Kekuatan setiap programmer ada pada pengetahuannya. Ya, kemampuan google dengan baik juga bukan yang terakhir, namun tetap harus ada sejumlah ilmu yang menjadi dasar terbentuknya cara berpikir pengembang. Semakin dalam pengetahuan ini, semakin banyak solusi menarik yang bisa dihasilkan oleh seorang programmer. Salah satu bagian dari “basis” tersebut adalah struktur data dan algoritma. Bagaimana Anda bisa memperluas pengetahuan Anda ke arah ini? Sebagai pilihan, carilah buku yang ilmunya akan menjadi bekal tahan api dan landasan untuk kajian lebih lanjut. Bagi saya, buku seperti itu adalah “Struktur dan Algoritma Data Java” oleh Robert Laforet .
Untuk siapa
Pembaca buku ini bisa sangat luas, karena akan berguna baik bagi mereka yang baru menguasai sintaksis bahasa Java , maupun bagi para programmer yang berlatih, untuk pemahaman yang lebih mendalam tentang fitur-fitur struktur data dan algoritma. .Tentang apa
Buku ini dikhususkan untuk mempelajari dan menggunakan struktur data dan algoritma dalam pemrograman. Ini akan mengajarkan pembaca bagaimana struktur data menentukan cara data diatur dalam memori, serta bagaimana algoritma melakukan berbagai operasi pada struktur ini. Mari kita gali lebih dalam dan lihat apa sebenarnya isi buku ini:- Array. Operasi penyisipan, pencarian, dan penghapusan dalam array dan array terurut dibahas secara rinci. Mendemonstrasikan pengoperasian pencarian linier dan biner untuk array terurut dan tidak berurutan. Anda juga akan mempelajari apa itu sintaksis O.
- Penyortiran. Tiga metode pengurutan sederhana dipertimbangkan: “pengurutan gelembung”, “pengurutan pilihan”, “pengurutan penyisipan”. Dari buku tersebut Anda akan mengetahui mana yang paling lambat dan mana yang paling sederhana.
- Tumpukan dan antrian. Struktur data seperti tumpukan, antrian, dan antrian prioritas, efektivitasnya, dan implementasinya di Java dipertimbangkan.
- Daftar tertaut. Buku ini membahas tentang daftar tertaut ganda dan tertaut ganda, efisiensinya, dan bagaimana operasi penyisipan, pencarian, dan penghapusan dilakukan. Iterator dan metode apa yang diperlukan juga dibahas.
- Rekursi. Rekursi dipertimbangkan dalam berbagai situasi, seperti: menghitung bilangan segitiga dan faktorial, membuat anagram, melakukan pencarian biner rekursif, memecahkan teka-teki Menara Hanoi, menerapkan pengurutan gabungan, memecahkan masalah knapsack.
- Penyortiran non-sepele. Metode yang lebih maju dipertimbangkan: Pengurutan shell, pengurutan cepat dan pengurutan radix, algoritmanya, efisiensi.
- Pohon biner. Pohon pencarian biner seimbang dipertimbangkan, cara kerjanya, operasi penyisipan dan penghapusannya, berbagai jenis traversal, pencarian minimum dan maksimum, pencarian penerus. Kode Huffman juga akan dibahas.
- Pohon merah dan hitam. Kami mempertimbangkan salah satu varietas pohon seimbang yang paling efektif, operasi rotasi dan peralihan warnanya diperlukan untuk keseimbangan.
- Pohon 2-3-4. Pohon jenis ini digambarkan sebagai contoh pohon multipath; operasi dan hubungannya dengan pohon-B, yang digunakan untuk penyimpanan data eksternal, dibahas.
- Tabel hash. Hashing dan berbagai metodenya dibahas, seperti probing linier dan kuadrat, hashing ganda, dan metode chaining. Anda juga dapat mempelajari bagaimana hashing dapat digunakan untuk mengatur penyimpanan file eksternal.
- Piramida. Ini adalah jenis pohon khusus yang digunakan untuk mengimplementasikan antrian prioritas secara efisien. Buku ini membahas tentang mekanisme pengoperasian penyisipan, penghapusan, dan penataan ulang. Anda juga akan mempelajari apa itu permutasi piramidal dan bagaimana penerapannya di Java.
- Grafik. Grafik berbobot dan tidak berbobot, algoritme untuk mencarinya, dan algoritme yang digunakan untuk menemukan jalur traversal terpendek disajikan.
Apa itu Aplikasi Lokakarya
Aplikasi lokakarya digunakan untuk mendemonstrasikan struktur dan algoritma ini . Aplikasi dirancang sebagai applet Java yang dapat dijalankan di browser. Aplikasi lokakarya membuat diagram grafis yang menunjukkan cara kerja suatu algoritma atau struktur data. Misalnya, dalam satu aplikasi yang dirancang untuk menampilkan kolom yang diurutkan dalam urutan menaik, setiap kali Anda mengklik tombol pada histogram, langkah berikutnya akan dilakukan. Dalam hal ini, nilai variabel yang terlibat dalam algoritme ini akan ditampilkan sehingga Anda dapat melihat bagaimana kode dijalankan (mengingatkan pada deskripsi debugger , bukan?).Cara mendownload dan menginstal Workshop
- Anda dapat mengunduh applet di sini .
- Klik WorkshopApplets.ZIP dan unduh arsip dengan applet.
- Untuk memahami applet, Anda dapat membaca topik ini dan komentarnya.
Kelebihan buku ini
- sangat mudah dibaca, banyak contoh dijelaskan hampir “dengan jari Anda”;
- membuka mata Anda terhadap banyak hal “klasik”, tanpa menggunakan rumus matematika yang rumit. Yah, hampir tanpa mereka :)
- Meskipun contohnya ada di Java, tindakan yang terjadi dalam kode dijelaskan dengan sangat rinci melalui teks berikut dan komentar dalam kode. Oleh karena itu, dapat dibaca oleh pengguna bahasa pemrograman apa pun, karena contoh kodenya cukup sederhana: dapat dibaca hampir seperti kodesemu.
Kontra dari buku ini
- Meski penjelasannya "di jari", ada celah di dalamnya. Untuk menjelaskan penyortiran array, penulis menggambar tim sepak bola, tetapi penyortiran Shell secara praktis tidak dijelaskan di sana: Saya tidak dapat memahaminya dan membacanya di Internet;
- Mungkin ada kesalahan ketik, biasanya pada gambar atau tabel;
- beberapa kode sudah ketinggalan jaman.
Analoginya
Saya merekomendasikan analogi buku ini atau berikutnya (bagi yang ingin melanjutkan belajar):- “Algoritma di Java” oleh Robert Sedgwick;
- “Algoritma: Konstruksi dan Analisis” oleh Thomas Cormen.
GO TO FULL VERSION