Merge Sort source code


//Merge Sort

#include <iostream>
    using namespace std;

int a[50];
void merges(int, int, int);
void merge_sort(int low, int high)
{
    int mid;
    if (low < high) {
        mid = (low + high) / 2;
        merge_sort(low, mid);
        merge_sort(mid + 1, high);
        merges(low, mid, high);
    }
}
void merges(int low, int mid, int high)
{
    int h, i, j, b[50], k;
    h = low;
    i = low;
    j = mid + 1;

    while ((h <= mid) && (j <= high)) {
        if (a[h] <= a[j]) {
            b[i] = a[h];
            h++;
        }
        else {
            b[i] = a[j];
            j++;
        }
        i++;
    }
    if (h > mid) {
        for (k = j; k <= high; k++) {
            b[i] = a[k];
            i++;
        }
    }
    else {
        for (k = h; k <= mid; k++) {
            b[i] = a[k];
            i++;
        }
    }
    for (k = low; k <= high; k++) a[k] = b[k];
}
int main()
{
    int num, i;

    cout << "********************************************************************************" << endl;
    cout << "                             MERGE SORT PROGRAM" << endl;
    cout << "********************************************************************************" << endl;
    cout << endl << endl;
    cout << "Please Enter THE NUMBER OF ELEMENTS you want to sort [THEN PRESSENTER]:" << endl;
    cin >> num;
    cout << endl;
    cout << "Now, Please Enter the ( " << num << " ) numbers (ELEMENTS) [THEN PRESS ENTER]:" << endl;
    for (i = 1; i <= num; i++) {
        cin >> a[i];
    }
    merge_sort(1, num);
    cout << endl;
    cout << "So, the sorted list (using MERGE SORT) will be :" << endl;
    cout << endl << endl;

    for (i = 1; i <= num; i++)
        cout << a[i] << "    ";

    cout << endl << endl << endl << endl;

}

results matching ""

    No results matching ""