الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Mergesort Programe

بدأه بيان محمد في 18 يوليو 2009 · 2 رد · 468 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

كتبت كود لعملية ال merge sortبس ما رضي اطبق صح مع اني تتبعته وما لاحظت اي خطأ ارجو المساعدة في ايجاد مشكلة هالبرنامج لانه بكره تسليمه

شكراااااااااااااا

#include<iostream.h>
#include<cstdlib>

void mergesort(int A[],int n);
void merge(int B[],int b,int C[],int c,int A[],int a);
//int B[8];
// int C[8];
 int i,j;
 int B[4];
 int C[4];

void main()
{
 int A[]={1,13,5,4,9,2,6,8};
 int n=8;
 mergesort(A,8);
 int u;
 for(u=0;u<n;u++)
  cout<<A<<"  ";

}

void mergesort(int A[],int n)
{
//int i,j;
// int B[4];
// int C[4];
 if(n>1)
 {
  for(i=0;i<=(abs(n/2)-1);i++)
   B=A;
  int w=0;
  for(j=abs(n/2);j<=n-1;j++)
  {
   C[w]=A[j];
   w++;
   if(w>(abs(n/2)-1))
	break;
  }
  mergesort(B,abs(n/2));
  mergesort(C,abs(n/2));

  merge(B,abs(n/2),C,abs(n/2),A,n);
 }

}


void merge(int B[],int b,int C[],int c,int A[],int a)
{
 int r,e;
 int i=0,j=0,k=0;
 while(i<b && j<c)
 {
  if(B<=C[j])
  {
   A[k]=B;
   i=i+1;
  }
  else
  {
   A[k]=C[j];
   j=j+1;
  }
  k=k+1;

 }

 if(i==B)
 {
  int x=k;
  for(r=j;r<=c-1;r++)
  {
   A[x]=C[r];
   x++;
   if(x>b+c-1)
	break;
  }

 }
 else
 {
  int y=k;
  for(e=i;e<=b-1;e++)
  {
   A[y]=B[e];
   y++;
   if(y>b+c-1)
	break;
  }
 }
}

تم تعديل هذه المشاركة بواسطة time1 في 18 يوليو 2009 في 14:52

#2

وعليكـم آلسـلآم ورحمه آلله وبركآته ..

http://www.mathbits.com/MathBits/CompSci/Arrays/Merge.htm

يمكن يفيدك

وبآلتوفيـق آختــي :)

تم تعديل هذه المشاركة بواسطة إشراقــه فجــر في 18 يوليو 2009 في 14:49

سبحآن الله وبحمده .. سبحآن الله العظيم .. ,

#3

شكرا إلك اختي اشراقه انا ما بدي طريقه تانيه بس بدي اعدل على نفس البرنامج اللي كتبته :happy:

شكرا كتييييييير على تعاونك معي

انتظر الردود التي تجيبني ان شاء الله :lol:

مواضيع مشابهة