HelliFull

HelliFull

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

طبقه بندی موضوعی
آخرین نظرات
  • ۱۰ مهر ۹۴، ۱۹:۵۹ - علی عاملی
    نوبی :))
نویسندگان

مرتب سازی آرایه ها در ++c

دوشنبه, ۱۶ شهریور ۱۳۹۴، ۱۰:۲۰ ق.ظ

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

برای حل این قبیل مسائل باید کل آرایه را مرتب کنیم!

الگوریتمهای مختلفی تا امروز برای مرتب سازی آرایه ها ارائه شده است. اما از ساده ترین آنها می توان به سه نوع مرتب سازی زیر اشاره نمود:

1- مرتب سازی انتخابی یا selection sort

2- مرتب سازی درجی یا insertion sort

3- مرتب سازی حبابی یا bubble sort

1- مرتب سازی انتخابی یا Selection sort:

در این نوع مرتب سازی  از اولین خانه آرایه شروع می کنیم و این خانه را با خانه های بعد از خودش تا آخر آرایه، یکی یکی مقایسه می کنیم و هر جا که مقدار خانه ای از خانه ی اولی بیشتر بود مقادیر این دو خانه را جا به جا می کنیم. 

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

بعد از آن دوباره خانه ی سوم را( که الان مقدارش عوض شده است) با خانه های هشتم و تا آخر آرایه مقایسه می کنیم و این کار را تا آخر ادامه میدهیم . در انتها خانه ی سوم با بزرگترین مقداری که در خانه های سوم تا آخر آرایه وجود داشته است، پر شده است. 

این کار را برای تمام خانه های آرایه( غیر از آخرین خانه که به مقایسه ای احتیاج ندارد) انجام می دهیم. 

در اشکال زیر مراحل این کار بخوبی نشان داده شده است: 

2- مرتب سازی درجی یا Insertion sort:

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

3- مرتب سازی حبابی یا Bubble sort:

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


۹۴/۰۶/۱۶ موافقین ۱ مخالفین ۰
night fury

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

نظر دادن تنها برای اعضای بیان ممکن است.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.