سری مطالب آموزش ساختمان دادهها و الگوریتمها – مقدمات
مخاطبان این دوره آموزشی
این آموزش برای فارغالتحصیلان علوم کامپیوتر و همچنین افراد حرفهای نرمافزار که مایل به یادگیری ساختمان دادهها و برنامهنویسی الگوریتم در سطح ساده و آسان هستند، طراحیشده است. پس از اتمام این سری مطالب آموزشی شما در سطح متوسطی از آموزش خواهید بود که میتوانید با آموزشهای بیشتر خود را به سطح پیشرفته برسانید.
پیشنیازها
قبل از ادامه این آموزش، شما باید درکی اساسی از زبان برنامهنویسی C، ویرایشگر متن، اجرای برنامهها و غیره داشته باشید. ساختمان داده یک روش سیستماتیک برای سازماندهی دادهها بهمنظور استفاده مؤثر از آنهاست. اصطلاحات زیر کلمات کلیدی ساختمان دادهها هستند:
- Interface : هر ساختمان دادهای یک interface دارد. interface نشاندهنده مجموعه عملیاتی است که ساختمان داده پشتیبانی میکند. یک اینترفیس لیستی از عملیاتهای پشتیبانی شده، نوع پارامترهایی که میتوانند بپذیرند و نوع return این عملیاتها را فراهم میکند.
- پیادهسازی: پیادهسازی نمایشی داخلی از یک ساختمان داده است. پیادهسازی همچنین تعریف الگوریتمهای مورداستفاده در عملیات ساختار داده را فراهم میکند.
ویژگیهای یک ساختمان داده
- صحت : پیادهسازی یک ساختمان داده باید صحیح باشد یعنی اینترفیس خودش را بهدرستی پیادهسازی کرده باشد.
- پیچیدگی زمانی : زمان اجرا یا زمان انجام عملیات ساختمان داده باید تا حد ممکن کم باشد.
- پیچیدگی فضایی : استفاده از حافظه توسط یک عملیات ساختمان دادهای باید در حد کمترین مقدار ممکن باشد.
نکات زمان اجرا
سه مورد وجود دارد که معمولاً برای مقایسه زمان اجرای ساختمان دادههای مختلف به روشی نسبی استفاده میشود:
- بدترین حالت : این سناریویی است که در آن یک عملیات خاص ساخت داده حداکثر زمان لازم را دارد. اگر بدترین زمان عملیاتی ƒ (n) باشد، که ƒ(n) نشاندهنده تابع پارامتر n است، این عملیات بیش از ƒ(n) زمان نخواهد برد.
- حالت متوسط : این سناریویی است که میانگین زمان اجرای یک عملیات از یک ساختمان داده را نشان میدهد. اگر عملیاتی بهاندازه ƒ(n) طول بکشد، پس m عملیات بهاندازه m ƒ(n) طول خواهد کشید.
- بهترین حالت : این سناریویی است که کمترین زمان ممکن برای اجرای یک ساختمان داده را نشان میدهد. اگر عملیاتی برای اجرا بهاندازه ƒ(n) طول بکشد، ممکن است زمان عملیات واقعی عددی تصادفی به حداکثر اندازه ƒ(n) باشد.
اصطلاحات اساسی
- دادهها: مقادیر یا مجموعهای از مقادیر هستند.
- مورد داده: مورد داده دلالت بر یک واحد از مقادیر دارد.
- گروهی از آیتمها: آیتمهای دادهای هستند که بتوان آنها را به زیر آیتمها تقسیم کرد.
- آیتمهای ابتدایی: آیتمهای دادهای که تقسیمپذیر نباشند.
- صفت[۱] و موجودیت[۲]: یک موجودیت صفات و ویژگیهای معینی دارد و ممکن است مقدار هم بگیرد.
- مجموعه موجودیت: موجودیتهایی با صفات مشابه از یک مجموعه موجودیت.
- فیلد[۳]: فیلد یک جز مقدماتی از اطلاعات است که ویژگی یک موجودیت را نشان میدهد.
- رکورد[۴]: مجموعهای از مقادیر میدانی یک موجودیت معین است.
- فایل: مجموعهای از رکوردها در مجموعه موجودیتِ دادهشده است.
بخشهای دیگر مقاله را از لینکهای زیر بخوانید:
سری مطالب آموزش ساختمان دادهها و الگوریتمها – مقدمات (بخش اول)
[۱] Attribute
[۲] Entity
[۳] Field
[۴] Record