قطعه کد مرتب سازی نزولی و صعودی اعداد آرایه در سی پلاس پلاس

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

قطعه‌کد

در قطعه کد زیر، یک آرایه‌ای از عداد در اختیار داریم که می‌خواهیم خانه‌های آن را به صورت نزولی مرتب کنیم:

#include <iostream>

using namespace std;

int main()
{

	int numbers[] = { 5, 6, 9, 4, 7, 55, 33, 15, 46, 0 };
	int current;

	for (int i = 0; i < 10; i++)
	{
		for (int j = i + 1; j < 10; j++)
		{
			if (numbers[i] < numbers[j])
			{
				current = numbers[i];
				numbers[i] = numbers[j];
				numbers[j] = current;
			}
		}
	}

	for (int i = 0; i < 10; i++) cout << numbers[i] << ", ";

}

خروجی این کد، بصورت زیر خواهد بود:

55, 46, 33, 15, 9, 7, 6, 5, 4, 0,


شرح کد:

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


حالت صعودی:

برای این کار تنها کافی است تا به‌جای کوچک بودن، بزرگ بودن را بررسی کنیم. بنابراین در کد بالا به‌جای علامت کوچکتر، علامت بزرگتر را قبل از جابه‌جایی قرار دهید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده 3 دیدگاه

    1. Shiv کاربر مهمان گفت:

      سلام، مشکلی ندارید که از این کد شما کپی کنیم و ازش برای پروژه دانشگاهی استفاده کنیم؟ راضی هستید دیگه؟?

      30
      1. رضا عبدالهی مدیر سایت گفت:

        سلام، مشکلی نیست دوست عزیز
        قرار دادیم که استفاده کنید.

        1. Shiv کاربر مهمان گفت:

          تشکر از لطف شما

          10
توضیحات پیشنهادی نظرات اشتراک