مرتب‌سازی درجه دوم

مرتب‌سازی - بازآرایی عناصر یک آرایه (فهرست) به ترتیب معین است.

روش حبابی (مرتب‌سازی حبابی)، یا مرتب‌سازی بر اساس مبادلات ساده).
کلاسیک جاودانه این ژانر. اصل عمل ساده است: ما آرایه را از ابتدا تا انتها دور می زنیم و همزمان عناصر همسایه مرتب نشده را عوض می کنیم. در نتیجه اولین پاس به آخرین مکان، "پاپ می شود" حداکثر عنصر اکنون دوباره قسمت مرتب نشده آرایه (از عنصر اول تا عنصر ماقبل آخر) را دور می زنیم و همسایه های مرتب نشده را در طول مسیر تغییر می دهیم. دومین عنصر بزرگ در مکان ماقبل آخر خواهد بود. با همین روحیه ادامه می دهیم، بخش مرتب نشده آرایه را که مرتباً در حال کاهش است دور می زنیم و حداکثرهای یافت شده را تا انتها فشار می دهیم.
 
منبع

اجرای الگوریتمی این الگوریتم
<پیش> حلقه برای J=1 تا N-1 مرحله 1 F=0 حلقه FOR I=1 به N-J-1 مرحله 1 اگر A[I] > A[I+1] سپس EXCHANGE A[I]،A[I+1] F=1 بعدی منم اگر F=0 باشد، از حلقه خارج شوید // اگر هیچ تبادلی در طول پاس وجود نداشت،   // یعنی همه عناصر   // به ترتیب مرتب شد بعدی جی پیچیدگی این الگوریتم: \(\displaystyle O(n^{2})\).


اطلاعات مفید اضافی: مقاله ویکی پدیا.

 

درج مرتب سازی

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


درج مرتب‌سازی – این یک الگوریتم بسیار ساده اما ناکارآمد است که با این وجود چندین مزیت خاص دارد که آن را حتی پس از توسعه بسیاری از الگوریتم‌های کارآمدتر دیگر مرتبط می‌سازد.

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

مرتب‌سازی درج به دلیل کارایی آن در مجموعه داده‌های کوچک (~10 عنصر) در عمل قابل استفاده است.

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

اجرای الگوریتمی این الگوریتم
<پیش> // عنصر تهی به عنوان یک دنباله از قبل مرتب شده در نظر گرفته می شود. // بنابراین، حلقه از 1 شروع می شود حلقه FOR I=1 به N-1 مرحله 1 X=A[I] J=I WHEN J>0 AND A[J-1]>X //به دنبال مکانی برای قرار دادن EXCHANGE A[J]،A[J-1] J=J-1 پایان خداحافظ A[J]=X بعدی منم پیچیدگی محاسباتی: \(\displaystyle O(n^{2})\).