Jumat, 01 Juni 2018

Tugas Akhir Pertemuan 7 SORTING

//Nama     : Muhammad Zuhri
//NIM      : 2016140614
//Kelas : 04TPLP011
//Tugas Akhir Struktur Data Pertemuan 7.cpp

#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
using namespace std;

void MergeSort (int low, int high);
void Merge (int, int, int);

int A[50];
int main()
{
    int i, elemen;
    cout<<"Berapa banyak elemen yang ingin disusun ? ";
    cin>>elemen;
    cout<<endl;
    cout<<"Masukkan " <<elemen<<" elemen : \n";
    cout<<endl;
    for(i=1; i<=elemen; i++)
    {
        cout<<"Elemen ke- "<<i<<" = ";
        cin>>A[i];
    }
    cout<<endl;
    MergeSort(1,elemen);
    cout<<endl;
    cout<<"Setelah di urutkan dari angka terbesar ke angka terkecil : \n\n";
    for(i=1; i<=elemen; i++)
    {
        cout<< A[i] <<" ";
    }
    cout<< endl << endl;
    return 0;
}

//prosedure MergeSort

void MergeSort (int low, int high)
{
    int mid;
    if(low<high)
    {
        mid = (low+high)/2;
        MergeSort(low,mid);
        MergeSort(mid+1, high);
        Merge(low, mid, high);
    }
}

//Prosedure Merge

void Merge(int low, int mid, int high)
{
    int h, i, j, k, b[50];
    h=low;
    i=low;
    j=mid+1;
    while ((h<=mid)&&(j<=high))
    {
        if (A[h]<A[h])
        {
            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];
    }
}

Hasil Outputnya seperti gambar dibawah ini :



















Semoga materi struktur data ini bermanfaat bagi teman-teman yang membutuhkannya :)

Related Posts:

0 komentar:

Posting Komentar