PDA

View Full Version : merge sort



پرنده کوچک
پنج شنبه 29 مرداد 1383, 20:17 عصر
سلام.
برنامه merge sort را به زبان c یا c++ میخواهم.
در حد امکان برنامه ساده و قابل فهم باشد.
در ضمن کار کند.
خیلی فوری است.
لطفا ساده قابل فهم باشد و خروجی بدهد
با سپاس فراوان.

lionking_1360
سه شنبه 01 دی 1383, 12:57 عصر
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
//**************************
int a[10];
//**************************
void Merg(int low , int high)
{
int i , j , k , mid;
int temp[10];
mid = (low + high)/2;
for(i = low ; i <= mid ; i++)
temp[i] = a[i];
for(i = mid+1 ; i <= high ; i++)
temp[mid+1+high-i] = a[i];
j = low ; k = high;
for(i = low ; i <= high ; i++)
a[i] = (temp[j] < temp[k]) ? temp[j++] : temp[k--];
}
//**************************
void MergSort(int low , int high)
{
int mid;
if(high > low)
{
mid = (low + high)/2;
MergSort(low, mid);
MergSort(mid+1 , high);
Merg(low , high);
}
}
//**************************
void main()
{
clrscr();
cout<<"Enter 10 number for Sort";
//*************Input********************
for(int i = 0 ; i < 10 ; i++)
{
cout<<"Please enter a number<<"<<i+1<<">>:";
cin>>a[i];
}
//*****************Sort******************
MergSort(0 , 9);
//****************OutPut*****************
for( i = 0; i < 10 ; i++)
cout<<a[i];
}
//***************************

این کدش ببین بدردت می خوره