
عنوان کتاب: درک الگوریتمها، راهنمایی مصور برای برنامهنویسان و دیگر افراد کنجکاو 🙃
سلام
من کتاب Grokking Algorithms از Aditya Y Bhargava رو چند وقت پیش خوندم خواستم نظرم رو راجعبه اش بنویسم. اول از همه خیلی کتاب ساده ای هست اگر قبلا این مطالب رو توی دانشگاه یا جای دیگه یاد گرفتی، اینجا فرصت خوبی هست که خیلی سریع روی موضوعها مرور کنی. اما اگر دنبال اینی که تمرین های باحال داشته باشی و توی جزئیات مسالهها بری شاید این بهترین انتخاب نباشه.
هدف کتاب یا بهتر بگم چیزی که نویسنده کلا براش معروف هست اینه که مسائل پیچیده رو با کمک تصویر درکشون رو برای مخاطب ساده تر کنه و این مزیت باحال داره که اینجا میخوام یه مثال راجعبه اش بزنم. آدیتا (نویسنده کتاب) یجا در رابطه با جستجوی باینری صحبت میکنه و اینکه چرا این الگوریتم روی لیست پیوندی linked-list جواب نمیده و از طرف دیگه چرا linked-list جذاب میتونه باشه. یه کوچولو که جلوتر رفت گفتش که حالا فرض کنید یه آرایه مرتب شده داریم میخوایم یه عنصر جدید رو داخل آرایه مرتب شده بذاریم، خب اول نیاز داریم جاش رو پیدا کنیم که با جستجوی باینری این کار خیلی راحته اما چون آرایه است نیاز به جابجای داره که دیگه همه چی خراب میشه ولی اگر میشد link-list باشه چی میشد پسر، نه؟ بعد شروع میکنه راجعبه Binary Search Tree ها صحبت میکنه که چطور BST ها مزیت جستجوی باینری آرایه رو بعلاوه هزینه پایین اضافه کردن linked-list رو به ما میده و اینکه یه سریهاشون میتونن خودشون رو بالانس 🤹 نگه دارن و چرا بالانس بودن مهمه. این رو گفتم که به این نتیجه برسم وقتی روی کلیت موضوع صحبت میکنیم بعضی اوقات به دید میرسیم که اگر به جزئیات بپردازیم شاید راحت نتونیم بهش برسیم و این شاید جالبترین نکته این کتاب برای من بود.
در پایان، این کتاب رو خیلی راحت میشه خوند، من وبلاگ آدیتا رو معمولا دنبال میکنم و دوست داشتم کتابش رو هم یه نگاه بندازم که خیلی ازم زمانی هم نگرفت و این موضوعهای الگوریتمی هم هر بار که یه چیز جدید راجع بهشون یاد میگیری به لبخند روی لب آدم میاره پس چرا شما هم این کتاب رو نخونی؟
از اینجا کجا برم؟