陣列應用 查詢(課時3)

2021-06-28 19:27:27 字數 1500 閱讀 2047

1.①

順序查詢法(在一列數中查詢某數x)

基本思想:一列數放在陣列

a[1]---a[n]

中,待查詢的數放在

x中,把x與

a陣列中的元素從頭到尾一一進行比較查詢。用變數p表示

a陣列元素下標,

p初值為1,使

x與a[p]

比較,如果

x不等於

a[p]

,則使p=p+1

,不斷重複這個過程;一旦x等於

a[p]

則退出迴圈;另外,如果

p大於陣列長度,迴圈也應該停止。(這個過程可由下語句實現)

void main() 

思考:將上面程式改寫一查詢函式

find

,若找到則返回下標值,找不到返回

-1 ②

基本思想:一列數放在陣列

a[1]---a[n]

中,待查詢的關鍵值為

key,把

key與

a陣列中的元素從頭到尾一一進行比較查詢,若相同,查詢成功,若找不到,則查詢失敗。

(查詢子過程如下。

index

:存放找到元素的下標。

) void main() 

if(index==-1) 

printf("the number is not found!/n"); 

else 

printf("the number is found the no%d!/n",index); }2

.折半查詢法(只能對有序數列進行查詢)

基本思想:設

n個有序數(從小到大)存放在陣列

a[1]----a[n]

中,要查詢的數為

x。用變數

bot、

top、

mid分別表示查詢資料範圍的底部(陣列下界)、頂部(陣列的上界)和中間,

mid=(top+bot)/2

,折半查詢的演算法如下:(1

)x=a(mid)

,則已找到退出迴圈,否則進行下面的判斷;(2

)x,x必定落在

bot和

mid-1

的範圍之內,即

top=mid-1;(

3)x>a(mid),x

必定落在

mid+1

和top

的範圍之內,即

bot=mid+1;(

4)在確定了新的查詢範圍後,重複進行以上比較,直到找到或者

bot<=top

。將上面的演算法寫成如下程式:

void main() 

else if(xtop=mid-1; 

else 

bot=mid+1; 

} if (find==1) 

printf("the number is found the no%d!/n",mid); 

else 

printf("the number is not found!/n"); 

}

課時 3 自測題

kubernetes 的中文含義是 單選題 a.船 b.舵手 c.容器平台 d.起重機 kubernetes 進行資源排程的最小粒度是 單選題 a.程序 b.容器 c.pod d.虛擬機器 kubernetes 的主要功能不包括 多選題 a.service discovery and load ba...

第3課時 體驗python

學科 人工智慧 年級 四年級上冊 課題 第3課時 體驗python 課時數 1課時 教材分析 在前面了解人工智慧含義及機器學習含義的基礎上,學生已經體驗過一些人工智慧的應用,本節課讓學生了解人工智慧離不開程式語言,通過python語言的初步學習,初步了解人工智慧程式語言,並能夠通過簡單編寫pytho...

第3課時《osg模型控制》

1.新增結點 osg中使用 osg node 和osg group 裝載模型,node是group的父類,可以通過以下 新增多個模型。osg ref ptr osgviewer viewer viewer new osgviewer viewer osg ref ptr osg group root...