當前位置:首頁 » 編程語言 » c語言排序與查找

c語言排序與查找

發布時間: 2023-08-26 22:38:03

1. 順序表的排序,二分法查找的c語言程序

#include<stdio.h>
int fun(int a[],int n,int key)
{i
nt low,mid,high;//low、mid、high是三個索引分別指向數組的下標low=0;//low指向數組a[]的第一個元素,即下表為0的元素
high=n-1;//lhigh指向數組a[]的最一個元素,即下表為n-1的元素,n為數組的長度
while(low<=high)//循環終止條件是low>high的時候
{
mid=(low+high)/2;//所謂二分查找就在這里,每次都讓mid指向數組下標等於low和high之和的一半的元素i
f(key<a[mid])//如果a【mid】大於要查找的元素,說明要查找的元素在low和mid之間,這是需要把high重新置為mid-1
(high=mid-1);//這里應該是{},不能使()吧
else if(key>a[mid])//這里同理,如果a【mid】小於要查找的元素,說明要查找的元素在mid和high之間,這是需要把low重新置為mid+1
(low=mid+1);
else
return mid;//剩下的就是相等的情況,直接返回mid就是查找到的結果
}
return -1;//執行到這一步就說明,low>high,沒有找到要查找的元素,返回-1表示沒有結果
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int a,b,c;
b=4;
c=fun(a,10,b);
if(c==1)
printf("not found");
else
printf("psition %d\n",c);
}

2. 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 }

3. c語言中如何將順序表排序並實現二分法查找

voidInsertSort(sqR)

這個函數是按值傳遞參數的。換句話說,你的順序表在傳遞的時候被復制了一遍,然後這個函數收到的是一個副本,然後這個程序也許成功排序了這個副本,但是你原來的順序表並沒有改變。你可以考慮傳遞這個順序表的指針。比如這樣

voidInsertSort(sq*pR)
{
sqR=*pR;
//以下不變
...
}

調用的時候傳遞R的地址

InsertSort(&R);
熱點內容
壓縮復原修車 發布:2025-03-15 08:46:52 瀏覽:77
linux調試匯編 發布:2025-03-15 08:38:09 瀏覽:106
手機上編寫c語言 發布:2025-03-15 08:17:53 瀏覽:754
上傳迅雷下載速度 發布:2025-03-15 08:07:50 瀏覽:554
好看解壓書 發布:2025-03-15 08:04:18 瀏覽:672
文字頁游源碼 發布:2025-03-15 08:02:29 瀏覽:315
怎麼看自己微信密碼 發布:2025-03-15 07:53:58 瀏覽:791
androidchecked 發布:2025-03-15 07:50:22 瀏覽:552
百度carplay怎麼連接安卓手機 發布:2025-03-15 07:49:39 瀏覽:24
捕捉圖片上傳 發布:2025-03-15 07:49:01 瀏覽:796