Thursday 7 November 2013

c++ program to sort a string using merge sort

#include <iostream.h>
#include<conio.h>
void MergeSortA(int low , int high);
void MergeA(int low ,int mid ,int high);

char currentArray[5];
void main()
{
     clrscr();
            for(int i = 0; i < 5; i++)
 cin >> currentArray[i];

MergeSortA(0,4);

for(int i = 0; i < 5; i++)
 cout << currentArray[i] <<endl;

 getch();
}

void MergeSortA(int low , int high)
{
int mid = 0;
if(low < high)
{
 mid = ((low+high)/2);
 MergeSortA(low , mid);
 MergeSortA(mid+1,high);
 MergeA(low,mid,high);
}
}
void MergeA(int low ,int mid , int high)
{
int i = low, j = mid+1 , k = low;
 char Temp[5];

while(i <= mid && j <= high)
{
 if( currentArray[i] < currentArray[j] )
 {
Temp[k]=currentArray[i];
i++;
 }
 else
 {
Temp[k]=currentArray[j];
j++;
 }
 k++;
}
if(i > mid )
{
 for(int h = j ;h <= high ; h++ )
 {
Temp[k]=currentArray[h];
k++;
 }
}
else
 for(int h = i; h<= mid ; h++ )
 {
Temp[k]=currentArray[h];
k++;
 }
for(int i = 0; i <= high ; i++)
{
currentArray[i]=assign(Temp[i]);
}
}

No comments:

Post a Comment