1)利用readData()函数从data1.txt中读入不同规模的数据存入数组,
编写基于数组的顺序查找算法,测试数据量为1万、5万、10万、20万、
30万、40万和50万时的数据查询时间。
算法代码如下:
int seqsearch(int a[],int n,int key)
{
int k=n-;
while(k>=&&a[k]!=key)
k--;
return (k);
}
2)利用readData()函数从data2.txt中读入不同规模的有序数据存入数组,
编写基于数组的二分查找算法,测试数据量为1万、5万、10万、20万、30万、
40万和50万时的数据查询时间。
算法代码如下:
int binSearch(int a[],int n,int key)
{
int low=;
int high=n-;
int mid;
while(low<=high)
{
mid=(low+high)/;
if(a[mid]==key) return mid;
if(a[mid]>key)
high=mid-;
else
low=mid+;
}
return -;
}
3)请设计冒泡排序算法函数void bubbleSort(int a[],int n),对a[1]..a[n]进行升序排序。
并测试在不同数据规模下的排序效率。
算法代码如下:
void bubbleSort(int a[],int n)
{
int i=,j,flag=;
while(i<=n-&&flag)
{
flag=;
for(j=;j<=n--i;j++)
if(a[j+]<a[j])
{
a[]=a[j];
a[j]=a[j+];
a[j+]=a[];
flag=;
}
i++;
}
}