Kekuatan setiap pengaturcara adalah pada pengetahuannya. Ya, keupayaan untuk google dengan baik juga tidak berada di tempat terakhir, tetapi bagaimanapun, mesti ada sejumlah pengetahuan, berdasarkan cara pemikiran pembangun terbentuk. Semakin mendalam pengetahuan ini, semakin menarik penyelesaian yang boleh dibuat oleh pengaturcara. Salah satu bahagian "asas" sedemikian ialah struktur data dan algoritma. Bagaimanakah anda boleh mengembangkan pengetahuan anda ke arah ini? Sebagai pilihan, cari buku, pengetahuan daripadanya akan menjadi simpanan kalis api dan asas untuk kajian lanjut. Bagi saya, buku sedemikian ialah "Struktur dan Algoritma Data Java" oleh Robert Laforet .
Untuk siapa
Penonton untuk buku ini boleh terdiri daripada orang yang sangat luas, kerana ia berguna untuk mereka yang baru menguasai sintaks bahasa Java dan untuk pengaturcara berlatih, untuk pemahaman yang lebih mendalam tentang ciri struktur data dan algoritma. .Tentang apa
Buku ini ditumpukan kepada kajian dan penggunaan struktur data dan algoritma dalam pengaturcaraan. Ia akan mengajar pembaca bagaimana struktur data menentukan cara data disusun dalam ingatan, serta cara algoritma melaksanakan pelbagai operasi pada struktur ini. Mari kita gali lebih dalam dan lihat apakah sebenarnya buku ini:- Tatasusunan. Sisip, cari dan padam operasi dalam tatasusunan dan tatasusunan tertib diliputi secara terperinci. Menunjukkan operasi carian linear dan binari untuk tatasusunan tertib dan tidak tertib. Anda juga akan mempelajari apa itu O-sintaks.
- Menyusun. Tiga kaedah pengisihan mudah dipertimbangkan: "isih gelembung", "isih pilihan", "isih sisipan". Dari buku tersebut anda akan belajar yang mana satu paling lambat dan yang mana satu paling mudah.
- Tumpukan dan beratur. Struktur data seperti tindanan, baris gilir dan baris gilir keutamaan, keberkesanannya dan pelaksanaan dalam Java dipertimbangkan.
- Senarai terpaut. Buku ini bercakap tentang senarai dua pautan dan dua pautan, kecekapannya, dan cara operasi sisipan, carian dan pemadaman dilakukan. Iterator dan kaedah yang mereka perlukan juga dilindungi.
- Rekursi. Rekursi dipertimbangkan dalam pelbagai situasi, seperti: mengira nombor segi tiga dan faktorial, membina anagram, melakukan carian binari rekursif, menyelesaikan teka-teki Menara Hanoi, melaksanakan isihan gabungan, menyelesaikan masalah ransel.
- Pengisihan bukan remeh. Kaedah yang lebih maju dipertimbangkan: Isih shell, isihan cepat dan isihan radix, algoritmanya, kecekapan.
- Pokok binari. Pepohon carian binari seimbang dipertimbangkan, cara ia berfungsi, operasi sisipan dan pemadamannya, pelbagai jenis traversal, carian minimum dan maksimum, cari pengganti. Kod Huffman juga akan dilindungi.
- Pokok merah dan hitam. Kami menganggap salah satu jenis pokok seimbang yang paling berkesan, putaran dan operasi penukaran warna mereka perlu untuk mengimbangi.
- Pokok 2-3-4. Pokok jenis ini diterangkan sebagai contoh pokok berbilang laluan; operasi dan hubungannya dengan pokok B, yang digunakan untuk penyimpanan data luaran, dibincangkan.
- Hash jadual. Hashing dan pelbagai kaedahnya diliputi, seperti probing linear dan kuadratik, pencincangan berganda dan kaedah rantaian. Anda juga boleh mengetahui cara pencincangan boleh digunakan untuk mengatur storan fail luaran.
- Piramid. Ini ialah jenis pokok khas yang digunakan untuk melaksanakan barisan keutamaan dengan cekap. Buku ini membincangkan mekanisme operasi sisipan, pemadaman, dan penyusunan semula. Anda juga akan mempelajari apa itu pilih atur piramid dan bagaimana ia boleh dilaksanakan di Jawa.
- graf. Graf berwajaran dan tidak berwajaran, algoritma untuk mencari melaluinya dan algoritma yang digunakan untuk mencari laluan lintasan terpendek dibentangkan.
Apakah itu Apl Bengkel
Aplikasi bengkel digunakan untuk menunjukkan struktur dan algoritma ini . Aplikasi direka bentuk sebagai applet Java yang boleh dijalankan dalam penyemak imbas. Aplikasi bengkel mencipta gambar rajah grafik yang menunjukkan cara algoritma atau struktur data berfungsi. Sebagai contoh, dalam satu aplikasi yang direka untuk memaparkan lajur yang diisih dalam tertib menaik, setiap kali anda mengklik butang pada histogram, langkah seterusnya akan dilakukan. Dalam kes ini, nilai pembolehubah yang terlibat dalam algoritma ini akan dipaparkan supaya anda boleh melihat bagaimana kod itu dilaksanakan (mengingatkan perihalan debugger , bukan?).Bagaimana untuk memuat turun dan memasang Bengkel
- Anda boleh memuat turun applet di sini .
- Klik pada WorkshopApplets.ZIP dan muat turun arkib dengan applet.
- Untuk memahami applet, anda boleh membaca topik ini dan ulasan mengenainya.
Kelebihan buku
- sangat mudah dibaca, banyak contoh dijelaskan hampir "pada jari anda";
- membuka mata anda kepada banyak perkara "klasik", tanpa menggunakan formula matematik yang kompleks. Nah, hampir tanpa mereka :)
- Walaupun contoh adalah dalam Java, tindakan yang berlaku dalam kod dijelaskan dengan terperinci oleh teks berikut dan komen dalam kod. Oleh itu, ia boleh dibaca oleh pengguna mana-mana bahasa pengaturcaraan, kerana contoh kod agak mudah: ia membaca hampir seperti pseudokod.
Keburukan buku
- Walaupun penjelasan "di jari", terdapat jurang di dalamnya. Untuk menerangkan tatasusunan pengisihan, pengarang melukis pasukan bola sepak, tetapi pengisihan Shell secara praktikal tidak diterangkan di sana: Saya tidak dapat memahaminya dan membaca tentangnya di Internet;
- Mungkin terdapat kesilapan taip, biasanya dalam imej atau jadual;
- sesetengah kod agak ketinggalan zaman.
Analog
Saya mengesyorkan analog buku ini atau mereka yang mengikutinya (bagi mereka yang ingin sambung belajar):- "Algoritma di Jawa" oleh Robert Sedgwick;
- "Algoritma: Pembinaan dan Analisis" oleh Thomas Cormen.
GO TO FULL VERSION