راهنمایی در رابطه با mergesort
سلام
دوستان در نظر دارم برنامه ای بنویسیم که پس از دریافت تعدادی آرایه از کاربر اونها را به صورت صعودی مرتب کنه و نمایش بده. سپس مجددا از کاربر داده جدید بگیره و اونها رو به لیست مرتب شده قبلی و در جای صحیح اضافه کند. این چیزی هست که تا بدین لحظه موفق به نوشتن اون شدم:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a[10], i=0, j=0, n, t;
printf ("\n tedade vorodee: ");
scanf ("%d", &n);
printf ("\n");
for (i = 0; i
{
printf ("\n vorodi %d raa vared konid: ", (i+1));
scanf ("%d", &a[i]);
}
for (j=0 ; j<(n-1) ; j++)
{
for (i=0 ; i<(n-1) ; i++)
{
if (a[i+1] < a[i])
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
}
printf ("\n tartibeh soodi: ");
for (i=0 ; i
{
printf (" %d", a[i]);
}
return 0;
}
اما از اینجا به بعدش رو نمی دونم که چه باید بکنم. خیلی لطف می کنید اگر بنده رو کمک کنید.
چطور می تونم با استفاده از mergsort آرایه جدید رو به لیست مرتب شده قبلی اضافه کنم.
ممنونم.
نقل قول: راهنمایی در رابطه با mergesort
نقل قول:
نوشته شده توسط
alex4040
سلام
پس از دریافت تعدادی آرایه از کاربر
شما از کاربر یه آرایه دریافت می کنید یا چند تا ؟
آیا منظورتون اینه که اول یک آرایه رو بگیریم ، اونو مرتب کنیم ، بعد آرایه دوم رو با آرایه اول بطور
مرتب ادغام کنیم ؟
نقل قول: راهنمایی در رابطه با mergesort
سلام دوست عزیز من اینا اینچوری درستش کردم اگه جاییشا نفهمیدی بگو توضیج بدم
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{ clrscr();
int a[10],a2[10], i=0, j=0, n, t;
//printf ("\n tedade vorodee: ");
//scanf ("%d", &n);
//printf ("\n");
for (i = 0; i<=9;i++)
{
printf ("\n vorodi %d raa vared konid: ", (i+1));
scanf ("%d", &a[i]);
}
for (i=0 ; i<=8 ; i++)
{
for (j=i+1 ; j<=9 ; j++)
{
if (a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
printf ("\n tartibeh soodi: ");
for (i=0 ; i<=9;i++)
{
printf (" %d", a[i]);
}
getch();
for (i = 0; i<=9;i++)
{
printf ("\n vorodi %d raa vared konid: ", (i+1));
scanf ("%d", &a2[i]);
}
for (i=0 ; i<=8 ; i++)
{
for (j=i+1 ; j<=9 ; j++)
{
if (a2[i] > a2[j])
{
t = a2[i];
a2[i] = a2[j];
a2[j] = t;
}
}
}
printf ("\n tartibeh soodi: ");
for (i=0 ; i<=9;i++)
{
printf (" %d", a2[i]);
}
getch();clrscr();
int c[20],aa=0,bb=0;
for(i=0;i<=19;i++){
if ((a[aa]<=a2[bb])&&(aa<=9)){
c[i]=a[aa];
aa++;
}else{
if (bb<=9){
c[i]=a2[bb];
bb++;}
}
}
printf("\n");
for(i=0;i<=19;i++)
printf("%5d",c[i]);
getch();
return 0;
}