數據結構(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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM