سری مطالب آموزش ساختمان دادهها و الگوریتمها – مقدمات
ساختمان دادهها روش برنامهای ذخیرهسازی دادهها بهمنظور استفاده مؤثر از دادهها است. تقریباً تمام اپلیکیشنهای سازمانی از انواع مختلف ساختمان دادهها به طرق مختلف استفاده میکنند. این آموزش به شما درک کاملی از ساختمان دادههای موردنیاز برای درک پیچیدگی اپلیکیشنهای سازمانی و نیاز به الگوریتمها و ساختمان دادهها میدهد.
چرا باید ساختمان دادهها و الگوریتمها را یاد گرفت؟
ازآنجاکه اپلیکیشنها در حال پیچیده شدن و غنیسازی دادهها هستند، امروزه سه مشکل رایج برای اپلیکیشنها وجود دارد:
- جستوجوی داده: یکمیلیون موجودی از یک فروشگاه را در نظر بگیرید. اگر برنامهای برای جستوجوی یک آیتم از این یک میلیون داده داشته باشیم، باید هر بار تمام این یک میلیون آیتم را بگردد و درنتیجه جستوجو کُند خواهد شد. با رشد دادهها جستوجو کُندتر هم میشود.
- سرعت پردازنده: اگرچه این روزها سرعت پردازنده بسیار بالا رفته است اما درصورتیکه دادهها تا یک میلیارد هم رشد کنند، این سرعت هم محدود میشود.
- چندین درخواست: ازآنجاکه هزاران کاربر میتوانند همزمان دادهها را در یک وب سرور جستوجو کنند، حتی سرورهای سریع هم هنگام جستوجوی دادهها میتوانند از کار بیفتند.
برای حل مشکلات فوقالذکر، راهحل ساختمان دادهها است. دادهها را میتوان در ساختمان دادهها بهگونهای سازماندهی کرد که نیازی به جستوجوی تمام آیتمها نباشد، و داده موردنیاز را تقریباً میتوان بهصورت آنی و فوری جستوجو کرد.
کاربردهای ساختمان دادهها و الگوریتمها
الگوریتم یعنی یک رویه گامبهگام، که مجموعهای از دستورالعملها را برای اجرای خروجی موردنظر به ترتیب خاصی تعریف میکند. الگوریتمها بهطورکلی مستقل از زبانهای زمینهشان تعریف میشوند، بهعنوانمثال یک الگوریتم میتواند در بیش از یک زبان برنامهنویسی پیادهسازی شود. ازنظر ساختار دادهها، برخی از دستههای مهم الگوریتمها در زیر آمده است:
- الگوریتمهای Search: الگوریتمی برای جستوجوی یک آیتم در یک ساختمان داده
- الگوریتمهای مرتبسازی[۱]: الگوریتمی برای مرتبسازی آیتمها به ترتیبی خاص
- الگوریتمهای Insert : الگوریتمی برای درج آیتم در ساختمان داده
- الگوریتمهای Update : الگوریتم برای بهروزرسانی آیتم موجود در یک ساختمان داده
- الگوریتمهای Delete : الگوریتمی برای حذف آیتم موجود از یک ساختمان داده
با استفاده از ساختمان دادهها میتوان مسائل رایانهای زیر را حل کرد:
- سری اعداد فیبوناچی
- مسئله کولهپشتی
- برج هانوی
- همه کوتاهترین جفت-مسیرها با الگویتم فلوید-وارشال
- کوتاهترین مسیر با الگویتم دایکسترا
- زمانبندی پروژه
بخشهای دیگر مقاله را از لینکهای زیر بخوانید:
سری مطالب آموزش ساختمان دادهها و الگوریتمها – مقدمات (بخش دوم)
[۱] Sort