با سلام
برنامه های موجود در رابطه با طراحی الگوریتم عبارتند از :
***************************************************
MARG۱
**********
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <alloc.h>
void margsort(int n, int s[]);
void merge(int h,int m,const int u[],const int v[],int s[]);
int main ()
{
const int siz=7;
int list[siz],i;
printf("Enter 7 Number \n");
for (i=1;i<=siz;i++)
cin >> list[i];
margsort(siz,list);
for (i=1;i<=siz;i++)
cout << list[i] << ' ';
getch();
return 0;
}
/************ Merge ************/
void merge(int h,int m,const int u[],const int v[],int s[]){
int i=1,j=1,k=1,indx;
while ((i<=h) && (j<=m)){
if (u[i] < v[j]){
s[k]=u[i];
i++;
}
else{
s[k]=v[j];
j++;
}
k++;
}
if (i>h)
for(indx=j;indx<=m;indx++){
s[k]=v[indx];
k++;
}
else{
for(indx=i;indx<=h;indx++){
s[k]=u[indx];
k++;
}
}
}
/********** MargSort ***********/
void margsort(int n, int s[])
{
const int h=n/2;
const int m=n-h;
int *u,*v,i,j;
u=(int *) malloc (n * sizeof(int));
v=(int *) malloc (n * sizeof(int));
if(n>1){
for (i=1;i<=h;i++){
u[i]=s[i];
}
for (j=1;j<=m;j++){
v[j]=s[i];
i++;
}
margsort(h,u);
margsort(m,v);
merge(h,m,u,v,s);
}
}
****************************************************
///////////////////////////////////////////////////////////////////////////////////
****************************************************
MARG۲
********
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <alloc.h>
void margsort(int low,int hgih, int s[]);
void merge(int low,int mid,int hgih,int s[]);
int main ()
{
const int siz=5;
int list[siz],i,l=1,n=siz;
printf("Enter 5 Number \n");
for (i=1;i<=siz;i++)
cin >> list[i];
margsort(l,siz,list);
for (i=1;i<=siz;i++)
cout << list[i] << ' ';
getch();
return 0;
}
/************ Merge ************/
void merge(int low,int mid,int hgih,int s[]){
int i,j,k,indx,n;
int *u;
u=(int *) malloc (n * sizeof(int));
i=low; j=mid+1; k=low;
while ((i<=mid) && (j<=hgih)){
if (s[i] < s[j]){
u[k]=s[i];
i++;
}
else{
u[k]=s[j];
j++;
}
k++;
}
if (i>mid)
for(indx=j;indx<=hgih;indx++){
u[k]=s[indx];
k++;
}
else{
for(indx=i;indx<=mid;indx++){
u[k]=s[indx];
k++;
}
}
for(indx=low;indx<=hgih;indx++)
s[indx]=u[indx];
}
/********** MargSort ***********/
void margsort(int low,int hgih, int s[])
{
int mid,i;
if(low<hgih){
mid=((low-1)+hgih)/2;
margsort(low,mid,s);
margsort(mid+1,hgih,s);
merge(low,mid,hgih,s);
}
}
***********************************************
الگوریتم QUICKSOR
الگوریتم استراسن
الگوریتم دایجسترا
الگوریتم پریم
الگوریتم فلوید
الگوریتم تعداد حداقل ضرب ماتریس ها (MIN_MULT)
و ...