+1 امتیاز
قبل در برنامه نویسی توسط (801 امتیاز)
ویرایش شده قبل توسط
آرایه چیست؟ در زبان سی پلاس پلاس و اینکه چن تا روش برای مرتب سازیش وجود داره لطفا مثالایی رو بگین که متوجه شم!

1 پاسخ

+1 امتیاز
قبل توسط (982 امتیاز)
ویرایش شده قبل توسط
یک آرایه مجموعه ای از عناصر با نوع یکسان هستند که در خانه های متوالی از حافظه قرار میگیرند. که با استفاده از index میتوان به هر کدام از این خانه ها دستیابی داشت

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

الگوریتمهای مختلفی تا امروز برای مرتب سازی آرایه ها ارائه شده است. اما از ساده ترین آنها می توان به سه نوع مرتب سازی زیر اشاره نمود:
1- مرتب سازی انتخابی یا selection sort
2- مرتب سازی درجی یا insertion sort
3- مرتب سازی حبابی یا bubble sort

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

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

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

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

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

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

سوالات مشابه

0 امتیاز
1 پاسخ 4.5هزار بازدید
0 امتیاز
2 پاسخ 3.1هزار بازدید
+1 امتیاز
1 پاسخ 509 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
0 پاسخ 138 بازدید
+1 امتیاز
1 پاسخ 14.1هزار بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط N.SA (801 امتیاز)
0 امتیاز
0 پاسخ 363 بازدید
...