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

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

قطعه‌کد

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

#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

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

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