الگوریتمستان

برنامه‌نویسی، طراحی الگوریتم و حل مسئله‌های الگوریتمی

 
در صورت ناخوانا بودن نوشته‌ها، از مرورگر دیگری استفاده کنید.
نوشته‌ها با برچسب الگوریتم‌های مرتب‌سازی نوشته‌ها با برچسب الگوریتم‌های مرتب‌سازی - الگوریتمستان الگوریتمستان الگوریتمستان
نوشته‌ها با برچسب «

الگوریتم‌های مرتب‌سازی

»

مرتب‌سازی هرمی (Heap Sort) یکی از روش‌های مشهور مرتب‌سازی داده‌ها است که بر اساس خصوصیات درخت heap (هیپ، هرم یا کپه)  و عملکرد آن پیاده‌سازی شده است.

بر اساس تعریف درخت heap، در یک max-heap (یا min-heap) بزرگترین (یا کوچکترین) مقدار بین داده‌ها همواره در ریشه‌ی درخت قرار دارد. یافتن بزرگترین (یا کوچکترین) عنصر بین عناصر، هزینه‌ی ثابت ( Ө( 1 دارد. با حذف این عنصر از درخت، بزرگترین (یا کوچکترین) عنصر بعدی مجددا در ریشه قرار می‌گیرد. به این ترتیب با حذف متوالی عناصر درخت heap و درج آنها در محل جدید، یک آرایه‌ی مرتب‌شده‌ی نزولی (یا صعودی) به دست خواهد آمد.

ادامه ...

روش مرتب‌سازی ادغامی (Merge Sort) یک روش مرتب‌سازی مبتنی بر مقایسه‌ی عناصر با استفاده از روش تقسیم و غلبه است. این روش از مراحل بازگشتی زیر تشکیل یافته است:

1- آرایه را به دو زیرآرایه با اندازه‌ی تقریبا یکسان تقسیم کن.

2- دو زیرآرایه را به روش مرتب‌سازی ادغامی مرتب کن.

3- دو زیرآرایه‌ی مرتب‌شده را ادغام کن.

ادامه ...

روش مرتب‌سازی سریع (Quick Sort) یکی از الگوریتم‌های مشهور مرتب‌سازی داده‌ها است. این الگوریتم طی مراحل بازگشتی زیر یک روش تقسیم و غلبه برای مرتب کردن داده‌ها ارائه می‌نماید:

1- انتخاب عنصر محوری: یکی از عناصر آرایه به عنوان عنصر محوری (pivot) - به عنوان مثال عنصر اول - انتخاب می‌شود.

2- تقسیم آرایه: چینش عناصر آرایه به قسمی تغییر داده می‌شود که تمامی عناصر کوچکتر یا مساوی محور در سمت چپ آن و تمامی عناصر بزرگتر در سمت راست آن قرار بگیرند. این دو قسمت زیر آرایه‌های چپ و راست نامیده می‌شوند.

ادامه ...

روش مرتب‌سازی درجی (Insertion Sort) یکی از روش‌های مقدماتی مرتب‌سازی مبتنی بر مقایسه‌ی عناصر است که در مقایسه با روش‌های دیگر بیشتر مورد توجه قرار دارد.

قفسه‌ی کتابی را در نظر بگیرید که قصد دارید کتاب‌ها را بر اساس عنوان و به ترتیب حروف الفبا مرتب کنید. از یک سمت قفسه شروع به مرتب کردن می‌کنید. ابتدا کتاب دوم را با کتاب اول مقایسه کرده و در صورت لزوم جابجا می‌کنید. سپس کتاب سوم را از محل خود برداشته و در مقایسه با دو کتاب قبلی در محل مناسب قرار می‌دهید. به همین ترتیب کتاب‌های بعدی را نیز نسبت به کتاب‌های مرتب‌شده‌ی قبلی در محل مناسب درج می‌کنید تا به آخر قفسه برسید.

ادامه ...

روش مرتب‌سازی انتخابی (Selection Sort) یکی از روش‌های اولیه‌ی مرتب‌سازی بر اساس مقایسه‌ی عناصر است. این الگوریتم طی چند مرحله عناصر لیست را به صورت صعودی یا نزولی مرتب می‌کند. به این ترتیب که در هر مرحله با بررسی عناصر نامرتب، بزرگترین (یا کوچکترین) عنصر را پیدا کرده و به انتهای لیست منتقل می‌کند.

لیست اعداد زیر را در نظر بگیرید که باید به صورت صعودی (کوچک به بزرگ) مرتب شود:

  

2 8 4 1 7

ادامه ...

یکی از روش‌های مرتب‌سازی، روش مرتب‌سازی حبابی (Bubble Sort) است که به آن روش تعویض استاندارد (Standard Exchange) نیز می‌گویند. این روش شامل چند مرحله است که در هر مرحله یک عنصر از لیست به طور قطع در محل مناسب خود قرار می‌گیرد.

لیست زیر را در نظر بگیرید که می‌خواهیم به صورت صعودی (از کوچک به بزرگ) مرتب کنیم:

  

4  3  8  1  6  2

  

ادامه ...

الگوریتمستان در تلگرام

   

 

پیوند کوتاه:
»  دوره‌ی طراحی و تحلیل الگوریتم دانشگاه استنفورد
ویدئوهای آموزشی دوره‌ی Algorithms: Design and Analysis دانشگاه استنفورد با زیرنویس انگلیسی
برچسب‌ها
#آموزش برنامه‌نویسی ++C #تمرین المپیاد کامپیوتر #ترجمه‌ی فارسی سوالات ACM #حل مسئله‌‌ی الگوریتمی #سوالات مسابقات برنامه‌نویسی بیان #حل سوالات مسابقات برنامه‌نویسی #تمرین مسابقه‌ی برنامه‌نویسی ای‌سی‌ام #مسابقات برنامه‌نویسی ACM #مسأله‌های برنامه‌نویسی #نمونه سوال فارسی مسابقات ACM #مسابقه برنامه‌نویسی #مسئله‌ی کوله‌پشتی #الگوریتم #ترجمه فارسی سوالات کتاب Programming Challenges #صف #حل سوالات UVa Online Judge #ساختمان داده #جستجوی اول سطح #سوالات برنامه‌نویسی #وبلاگ #معرفی وب‌سایت #تکنیک‌های طراحی الگوریتم #کتاب مسابقات برنامه‌نویسی #ترجمه‌ی فارسی سوالات UVa Online Judge #الگوریتم‌های بازگشتی #کتاب الگوریتم #ترجمه‌ی فارسی سوالات برنامه‌نویسی #مسابقات برنامه‌نویسی #نمونه سوال مسابقه ACM #درخت‌ها #تمرین طراحی الگوریتم #آموزش طراحی الگوریتم #نکات برنامه‌نویسی #سوالات مسابقات ACM-ICPC #الگوریتم‌های حریصانه #نمونه سوالات مسابقه برنامه‌نویسی #تمرین مسابقه برنامه‌نویسی #گراف #برنامه‌نویسی #منبع آموزشی #الگوریتم‌های تقسیم و غلبه #الگوریتم‌های برنامه‌نویسی پویا #سوالات چالشی برنامه‌نویسی #الگوریتم‌های مسیریابی #نمونه سوال فارسی مسابقه‌ی ACM #کتاب الکترونیکی #ماتریس #آموزش الگوریتم #الگوریتم‌های گراف #آمادگی مسابقه ACM #حل سوالات ACM-ICPC #آمادگی مسابقه برنامه‌نویسی #مسأله‌های الگوریتمی #درخت پوشا #مسئله‌های الگوریتمی #آموزش ساختمان داده‌ها #جستجوی اول عمق #دانلود کتاب #الگوریتم فلوید-وارشال #سوالات UVa Online Judge #مسئله‌های برنامه‌نویسی #کتابخانه قالب استاندارد ++C #محاسبات ریاضی #Python #مسابقه برنامه نویسی #الگوریتم دایکسترا #ویدئوی آموزشی #حل سوالات Timus Online Judge #الگوریتم‌های عقبگرد #آمادگی المپیاد کامپیوتر #نمونه سوال فارسی مسابقات برنامه‌نویسی #الگوریتم‌های مرتب‌سازی #الگوریتم‌های کوتاهترین مسیر #پیمایش گراف #برنامه‌نویسی ++C