【算法】无序数组的查找算法(C++源码)
一、任务描述
设计一个查找算法,该算法将在一个给定的无序数组中查找指定的元素,若找到该元素返回true,反之返回false。请分析你所设计算法的时间复杂度。
二、要求
编写并测试所设计的查找算法
实验报告中还需要包含对所设计算法的时间复杂度分析过程。
三、步骤描述
运用时间内存分配,输入数组的大小,利用随机数生成数组需要的随机数(随机数范围<=100),直接按数组顺序求复合条件的数,时间复杂度为O(n)。
四、程序运行结果截图
五、源代码(C++)
#include<iostream>
#include<ctime>
#include<Windows.h>
using namespace std;
int main()
{
DWORD start_time=GetTickCount();
srand(time(NULL));
int n;
cout<<"Please enter the number of array size :";
cin>>n;
int a[n],i,x,flag=0;
cout<<endl<<n<<" random arrays are being generated,please wait !"<<endl<<endl;
for(i=0;i<n;i++)
{
a[i]=rand()%100;
}
cout<<n<<" random arrays generation completed !"<<endl<<endl;
cout<<"Please put the number you want find :";
cin>>x;
cout<<endl;
for(i=0;i<n;i++)
{
if(a[i]==x && flag==0)
{
cout<<"true"<<endl<<endl;
flag=1;
}
}
if(flag==0)
{
cout<<"false"<<endl<<endl;
}
DWORD end_time = GetTickCount();
cout<<"The run time is :"<<(end_time-start_time)<<"ms!"<<endl;
return 0;
}