C语言数据结构(C语言)关于寻找和排序

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 }