کامپیوتر , کامپیوتر و بازهم کامپیوتر ...

چیزی را که نمی توانی بدست آوری فراموش کن و چیزی را که نمی توانی فراموش کنی بدست آور

وبلاگ دیگر من را در این آدرس ببینید
الگوریتم
ساعت ۸:۳۸ ‎ب.ظ روز سه‌شنبه ۳ آذر ۱۳۸۸  کلمات کلیدی: الگوریتم ، merge sort ، c++ ، برنامه نویسی

سلام

قصد دارم از این به بعد هر از گاهی الگوریتم های پیاده سازی شده در ++C رو در وبلاگم بگذارم.

اگر در مورد کدها مشکلی داشتید در قسمت نظرات مشکلتون رو مطرح کنین.

برای دیدن کد merge sort به ادامه مطلب مراجعه کنید...


#include<iostream>

using namespace std;

void merge(int *A,int n,int *B,int m,int *C)
{
     int j=0,i=0,p=0,q=0;
     cout<<"ghable while!";
     while(i<n+m)
     {
             if(q == m or (p < n and A[p]<B[q]))
             {   
                 C[i]=A[p];
                 i++;
//                 if (p<n)
                  p++;
             }
             else
             {
                 C[i]=B[q];
                 i++;
//                 if (q<m)
                  q++;
                        
             }
                           
     }
     cout<<"bade while"<<endl;
     for (int i = 0; i < n + m; i++)
         cout <<C[i] << " ";
     cout << endl;
}

void msort(int *A,int n)
{
     int C[n];
     if(n<=1)
             return ;
           msort(A,n/2);
           msort(A+n/2,(n+1)/2);
           merge(A,n/2,A+n/2,(n+1)/2,C);
           for(int k=0;k<n;k++)         
                   A[k]=C[k];
}


main()
{
      int A[10]={5,11,10,9,4,6,120,67,12,1},n=10,B[10]={0};
      msort(A,n);
      system("pause");
}