آموزش جامع و ساده انواع روشهای مرتبسازی آرایهها در سی پلاس پلاس
آموزش مرتبسازی آرایهها در سی پلاس پلاس
آموزش جامع و ساده انواع روشهای مرتبسازی آرایهها در سیپلاسپلاس (C++)
اگر شما هم به دنبال یادگیری مرتبسازی آرایهها در سیپلاسپلاس هستید، این مطلب برای شماست! در این آموزش، به زبان ساده و از پایه، با انواع روشهای مرتبسازی آرایهها آشنا میشوید. چه یک برنامهنویس تازهکار باشید و چه بخواهید دانش خود را در زبان سیپلاسپلاس تقویت کنید، این پست به شما کمک میکند تا به راحتی مفاهیم مرتبسازی را درک کنید.
چرا یادگیری روشهای مرتبسازی مهم است؟
مرتبسازی یکی از مباحث پایهای و مهم در برنامهنویسی است. چه در حال کار روی پروژههای کوچک باشید و چه برنامههای بزرگ، دانستن روشهای مختلف مرتبسازی به شما کمک میکند تا کدهای بهینهتر و کارآمدتری بنویسید. در این آموزش، ما به آموزش سیپلاسپلاس از پایه پرداختهایم و روشهای مختلف مرتبسازی را با مثالهای ساده توضیح دادهایم.
روشهای مرتبسازی آرایهها در سیپلاسپلاس
در ادامه، به معرفی و آموزش انواع روشهای مرتبسازی میپردازیم:
1. مرتبسازی حبابی (Bubble Sort)
– سادهترین روش مرتبسازی که با مقایسه عناصر مجاور کار میکند.
– مناسب برای آرایههای کوچک.
– مثال کد در سیپلاسپلاس:
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n-1; i++)
for (int j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1])
swap(arr[j], arr[j+1]);
}
2. مرتبسازی انتخابی (Selection Sort)
– در این روش، کوچکترین عنصر پیدا شده و به ابتدای آرایه منتقل میشود.
– مناسب برای آرایههای با اندازه متوسط.
– مثال کد:
void selectionSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
int minIndex = i;
for (int j = i+1; j < n; j++)
if (arr[j] < arr[minIndex])
minIndex = j;
swap(arr[i], arr[minIndex]);
}
}
3. مرتبسازی درجی (Insertion Sort)
– این روش شبیه به نحوه مرتبسازی کارتهای بازی است.
– مناسب برای آرایههای تقریباً مرتب.
– مثال کد:
void insertionSort(int arr[], int n) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
}
4. مرتبسازی سریع (Quick Sort)
– یکی از سریعترین روشهای مرتبسازی که از روش تقسیم و حل استفاده میکند.
– مناسب برای آرایههای بزرگ.
– مثال کد:
int partition(int arr[], int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
swap(arr[i], arr[j]);
}
}
swap(arr[i+1], arr[high]);
return i + 1;
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
5. مرتبسازی ادغامی (Merge Sort)
– این روش نیز از الگوریتم تقسیم و حل استفاده میکند و آرایه را به بخشهای کوچکتر تقسیم میکند.
– مناسب برای آرایههای بزرگ و پیچیده.
– مثال کد:
void merge(int arr[], int l, int m, int r) {
int n1 = m - l + 1;
int n2 = r - m;
int L[n1], R[n2];
for (int i = 0; i < n1; i++)
L[i] = arr[l + i];
for (int j = 0; j < n2; j++)
R[j] = arr[m + 1 + j];
int i = 0, j = 0, k = l;
while (i < n1 && j < n2) {
if (L[i] <= R[j]) {
arr[k] = L[i];
i++;
} else {
arr[k] = R[j];
j++;
}
k++;
}
while (i < n1) {
arr[k] = L[i];
i++;
k++;
}
while (j < n2) {
arr[k] = R[j];
j++;
k++;
}
}
void mergeSort(int arr[], int l, int r) {
if (l < r) {
int m = l + (r - l) / 2;
mergeSort(arr, l, m);
mergeSort(arr, m + 1, r);
merge(arr, l, m, r);
}
}
کدام روش مرتبسازی بهتر است؟
انتخاب روش مرتبسازی به اندازه آرایه و نوع دادهها بستگی دارد. برای آرایههای کوچک، روشهایی مثل حبابی یا درجی مناسب هستند، اما برای آرایههای بزرگ، مرتبسازی سریع یا ادغامی گزینههای بهتری هستند.
چرا آموزشگاه کامپیوتر راهکار تبریز؟
اگر به دنبال یادگیری برنامهنویسی به صورت حرفهای هستید، آموزشگاه کامپیوتر راهکار در تبریز، با ارائه دورههای تخصصی آموزش سیپلاسپلاس، شما را به یک برنامهنویس حرفهای تبدیل میکند. با شرکت در دورههای ما، میتوانید به راحتی مفاهیم پایهای و پیشرفته برنامهنویسی را یاد بگیرید. آموزش مرتبسازی آرایهها در سی پلاس پلاس
برای مشاوره تماس بگیرید 04135574231 و 09146585123