ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
الگوریتم مرتب سازی ادغامی
برای دیدن این برنامه روی ادامه مطلب کلیک کنید
Msmas.blogfa.com
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int S[]={27,10,12,20,25,13,15,22},Counter=0;
void mergsort2(int,int);
void merg2(int,int,int);
void main(void) {
int i;
clrscr();
printf("MergeSort Algoritm\n");
for(i=0,printf("Befor sort: ");i<8;printf("%3d",S[i]),i++);
mergsort2(0,7);
for(i=0,printf("\nAfter sort: ");i<8;printf("%3d",S[i]),i++);
printf("\nThe repetition of main operation is: %d",Counter);
getch();
}
void mergsort2(int low,int high){
int mid;
if (low<high){
mid=(low+high)/2;
mergsort2(low,mid);
mergsort2(mid+1,high);
merg2(low,mid,high);
}
}
void merg2(int low,int mid,int high){
int i,j,k,index,*U;
U=(int *) malloc(sizeof(int) * (high-low+1));
i=low; j=mid+1; k=low;
while(i<=mid && j<=high){
Counter++;
if(S[i]<S[j]){
U[k]=S[i];
i++;
} else {
U[k]=S[j];
j++;
}
k++;
}//end of while
if(i>mid)
for(index=j;index<=high;U[k]=S[index],k++,index++);
else
for(index=i;index<=mid;U[k]=S[index],k++,index++);
for(index=low;index<=high;S[index]=U[index],index++);
}
سلام خیلی ممنون که امکان استفاده از اطلاعات خودت رو به دانشجویان مهندسی میدی و در مورد الگوریتم ادغامی اگر ممکنه توضیحاتی در مورد نحوه اجرا این الگوریتم مرتب سازی و اگر ممکنه یه مثال برام ایمیل کن ممنون می شم
-علیک سلام
خواهش می کنم
چشم در اسرع وقت(دو سه روز آینده ) این کار رو برای شما انجام خواهم داد!