PDA

View Full Version : طراحی الگوریتم



faty_rooz
دوشنبه 02 آبان 1390, 18:13 عصر
سلام :قلب:
من دو تا الگوریتم دارم اگه کسی جوابشو میدونه بهم بگه

1-الگوریتمی براساس روش تقسیم وحل بیابید که maxو min عناصر یک آرایه را بیابد ؟

2-الگوریتمی برای ضرب ماتریس ها بنویسید که
N2log2nپیچیدگی زمانی آن باشد

quiet_programmer
سه شنبه 03 آبان 1390, 00:58 صبح
با سلام.

برای سوال اولت کد میزارم. مدیران بخش ببخشن که مستقیم کد رو در اختیارش قرار میدم(یه جورایی با قوانین سایت نمیخونه:چشمک:) ولی چون قبلن نوشته بودم کد میزارم.

#include <iostream.h>
#include <cstdlib.h>
#include <vector.h>
#include <conio.h>
#include <ctime.h>
#define MAXSIZE 10
void MaxMin(int Left, int Right, int &Min, int &Max,vector<int> Array)
{
if (Left==Right)
{
Min=Array[Left];
Max=Array[Left];
}
else if (Left==(Right-1))
{
if (Array[Left] > Array[Right])
{
Min=Array[Right];
Max=Array[Left];
}
else
{
Min=Array[Left];
Max=Array[Right];
}
}
else
{
int Mid=(Left+Right)/2;
int Max1=Array[Mid],Min1=Array[Mid],Max2=Array[Mid],Min2=Array[Mid];
MaxMin(Left,Mid,Min1,Max1,Array);
MaxMin(Mid+1,Right,Min2,Max2,Array);
Max=(Max1>Max2)? Max1:Max2;
Min=(Min1<Min2)? Min1:Min2;
}
}
//--------------------------------------------------------------
void main()
{
vector<int>Array;
int min,max;
srand((unsigned)time(0));
for (int i=0;i<MAXSIZE;i++)
Array.push_back(rand());
for(int i=0;i<MAXSIZE;i++)
cout<<Array[i]<<'\t';
cout <<'\n';
MaxMin(0,Array.size()-1,min,max,Array);
cout<<"Min: "<<min << " Max: " << max;
}

برای سوال دومت هم باید بگم که باید از الگوریتم استراسن استفاده کنی. سرچ کنی به نتیجه میرسی.

یا حق.
موفق باشید

samiracamputer
شنبه 31 فروردین 1392, 10:12 صبح
برنامه ی تبدیل میانوندی به پیشوندی به زبان ++c

samiracamputer
شنبه 31 فروردین 1392, 10:14 صبح
:تشویق: برنامه ی تبدیل میانوندی به پیشوندی به زبان ++c باتشکر