1)利用readData()函数从data1.txt中读入不同规模的数据存入数组,
编写基于数组的顺序查找算法,测试数据量为1万、5万、10万、20万、
30万、40万和50万时的数据查询时间。

算法代码如下:

1 int seqsearch(int a[],int n,int key)
2 {
3     int k=n-1;
4     while(k>=0&&a[k]!=key)
5         k--;
6     return (k);
7 }

2)利用readData()函数从data2.txt中读入不同规模的有序数据存入数组,
编写基于数组的二分查找算法,测试数据量为1万、5万、10万、20万、30万、
40万和50万时的数据查询时间。

算法代码如下:

 1 int binSearch(int a[],int n,int key)
 2 {
 3     int low=0;
 4     int high=n-1;
 5     int mid;
 6     while(low<=high)
 7     {
 8         mid=(low+high)/2;
 9         if(a[mid]==key) return mid;
10         if(a[mid]>key)
11             high=mid-1;
12         else
13             low=mid+1;
14     }
15     return -1;
16 }

3)请设计冒泡排序算法函数void bubbleSort(int a[],int n),对a[1]..a[n]进行升序排序。
并测试在不同数据规模下的排序效率。

算法代码如下:

 

 1 void bubbleSort(int a[],int n)
 2 {
 3     int i=1,j,flag=1;
 4     while(i<=n-1&&flag)
 5     {
 6         flag=0;
 7         for(j=1;j<=n-1-i;j++)
 8             if(a[j+1]<a[j])
 9             {
10                 a[0]=a[j];
11                 a[j]=a[j+1];
12                 a[j+1]=a[0];
13                 flag=1;
14             }
15             i++;
16     }
17 }

 

 posted on 2018-01-03 16:19  linlh  阅读(2718)  评论(0编辑  收藏  举报