




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
ProgramminginC
c程序設計
ProgramminginC
西安電子科技大學計算機學院張淑平
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China1
ProgramminginC
這次課的主要內(nèi)容
?數(shù)組
?一維數(shù)組
?查找
?排序
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China2
ProgramminginC
什么是數(shù)組
類型相同的一組數(shù)據(jù),集中存儲
一維數(shù)組的定義形式
A類型說明符數(shù)組名[常量表達式];
>例如:
>intnum[10];/*由10個整數(shù)組成的數(shù)組num*/
>doublea[100];/*由100個浮點數(shù)組成的數(shù)組a*/
>charname[20];/*由20個字符組成的數(shù)組name*/
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China3
ProgramminginC
數(shù)組的元素
如何區(qū)分一個數(shù)組中的每個元素
>hU_(num)[10];/*由10個整數(shù)組成的數(shù)組num*/
>num[0],num[1],num[2],...,num[8],num[9]
數(shù)組名Adoi也以列100];/*由100個浮點數(shù)組成的數(shù)組a*/
>a[0],a[l],a[2],...,a[98],a[99]
>char^name)[20];/*由20個字符組成的數(shù)組name*/
>name[0],name[1],...,name[18],name[19]
數(shù)組元素的下標
同一個數(shù)組中的元素通過下標相互區(qū)
分
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China4
ProgramminginC
;同一婁儂中的元素是集中存放的
?intnum[5];
num[O]79
num[l]11
num[2]27
num[3]26
num[4]43
數(shù)組元素按照下標順序依次存放在內(nèi)
存的一段空間中
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China5
ProgramminginC
查找
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China6
ProgramminginC
0順序查找
?若數(shù)組num是由8個整數(shù)組成的,請查找指
定的整數(shù)k是否在其中。
scanf(n%dn,&k);
for(i=0;i<8&&num[i]!=k;++i);
if(i>=8)printf(nnotfoundin'');
elseprintf(nfound!\nn);
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China7
卞ProgramminginC
圖順序查找(續(xù))
?也可以按照下標從大到小的次序進行順序
查找
scanf(n%dn,&k);
for(i=7;i>=0&&num[i]!=k;i-);
if(i<0)printf(nnotfound!\nn);
elseprintf(nfound!\nH);
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China8
ProgramminginC
⑨順序查找(續(xù))
?順序查找的方法是:按照下標次序從大到
小(或從小到大)依次查找。
?當數(shù)組中元素的值無序排列時,采用順序
查找是當然的,若元素的值是有序排列的
呢?
num[O]11
num[l]26
num[2]27
num[3]43
num[4]79
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China9
ProgramminginC
好二分查找(折半查找)
?若數(shù)組中元素的值是有序排列的,則可采用二分
查找法查找元素,方法如下:用一對下標(稱為高
端下標high和低端下標low)指示出一個查找范圍,
由這對下標計算出中間元素的下標mid,若待查找
的元素k等于中間元素的值,則查找成功;否則,
根據(jù)k與之間元素值的大小關系,修改高端下標
high或者低端下標low,將查找范圍縮小一半。
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China10
ProgramminginC
二分查找(續(xù))
?若數(shù)組中元素的值是有序排列的,則可采用二分查找法查
找元素,方法如下:用一對下標(稱為高端下標high和低
端下標low)指示出一個查找范圍,由這對下標計算出中間
元素的下標mid,若待查找的元素k等于中間元素的值,則
查找成功;否則,根據(jù)k與之間元素值的大小關系,修改
高端下標high或者低端下標low,將查找范圍縮小一半。
下標01234567
612232831455199
lowhigh
mid=[(low+high)/2]
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China11
ProgramminginC
二分查找(實例)
?假設需要在8個元素的數(shù)組num中查找45是否在其
中,即k=45。
下標01234567
612232831455199
lowhigh
mid
k>num
II
4528
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China12
ProgramminginC
<^二分查找(實例續(xù))
?待查找的45大于中間位置上的元素28,因此,下
一步應當在后半部查找,即確定新的low和high。
下標01234567
612232831455199
lowhigh
?high值不變,low=mid+1
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China13
ProgramminginC
簿二分查找(實例續(xù))
?待查找的45等于中間位置上的元素45,查找結(jié)束。
下標01234567
612232831455199
lowhigh
mid
k==num[midi
IIII
4545
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China14
鴛二分查找ProgramminginC
?假設需要在8個元下標01234567
素的數(shù)組num中查612232831455199
找45是否在其中,
即k=45。
lowhigh
mid
scanf(n%dn,&k);
low=0;high=7;
while(low<=high){/*查找整數(shù)k是否在數(shù)組num中*/
mid=(low+high)/2;
if(k==num[mid])break;
elseif(k>num[mid])low=mid+1;
elsehigh=mid-1;
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China15
ProgramminginC
一維數(shù)組小結(jié)
?數(shù)組是具有相同類型的數(shù)據(jù)元素的序列,其元
素連續(xù)地存儲,可以通過下標訪問數(shù)組的元素。
?數(shù)組的定義(聲明)格式:
元素類型說明符數(shù)組名[常量表達式];
其中,常量表達式的值是個整數(shù),它指定了該
數(shù)組中元素的數(shù)目,即數(shù)組的尺寸。
?一般情況下,定義(聲明)數(shù)組時應明確數(shù)組的
尺寸。
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China16
ProgramminginC
一維數(shù)組小結(jié)(續(xù))
?定義(聲明)數(shù)組時可以給其元素指定值,即初始
化。
A例如:intnum[8]={6,12,23,28,31,45,51,99);
?數(shù)組的尺寸可以由初始化時值的數(shù)目確定,即
?例如:intnum[]={6,12,23,28};
>由于用作數(shù)組元素初始化的值的個數(shù)是4個,所以編譯
系統(tǒng)由此確定該數(shù)組的尺寸(大?。?。
?若給定的初始值的數(shù)目小于指定的尺寸,則按下
標序初始化數(shù)組元素,其余的元素初始化為0。
A例如:intnum[8]={6,12,23,28);
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China17
ProgramminginC
一維數(shù)組小結(jié)(續(xù))
?對數(shù)組中的元素只能逐個進行運算,不能整體運
算
>例如:inti,num[8];
for(i=0;i<8;i++)
scanf&num[i]);
num=100;/*錯誤*/
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China18
ProgramminginC
期二^查找程序
intk,num[8]={6,12,23,28,31,45,51,99};intlow,high,mid;
scanf(n%dn,&k);
low=0;high=7;
while(low<=high){/*查找整數(shù)k是否在數(shù)組num中*/
mid=(low+high)/2;
if(k==num[mid])break;
elseif(k>num[mid])low=mid+1;
elsehigh=mid-1;
)
if(low>high)
printf(n%disnotfoundinarraynum.\nn,k);
else
printf(n%disfoundinarraynum[%d].\nn,k,mid);
文電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,ChinaTC2.0
ProgramminginC
簡單排序法
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,XidianUniversity,China回顧
ProgramminginC
冒泡排序流程圖
ProgramminginC
目冒泡排序
inti,j,temp,a[7]={43,18,9,13,55,7,43};
for(i=0;i<6;i++){
for(j=0;j<6-i;j++)
if(a[j]>a[j+l]){
temp=a[j];a[j]=a[j+l];a[j+l]=temp;
}/*endif*/
}/*endfori*/
西安電子科技大學計算機學院-SchoolofComputerScience&Engineering,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 夏季行車安全考題及答案
- 物理研究參考題目及答案
- 吉林省農(nóng)安縣新農(nóng)中學2024屆中考三模數(shù)學試題含解析
- 《穿靴子的貓》讀后感
- 2025年安全員-C證證考試題庫及答案
- 云南錫業(yè)職業(yè)技術學院《馬克思主義中國化》2023-2024學年第二學期期末試卷
- 江西環(huán)境工程職業(yè)學院《動物生物學實驗雙語》2023-2024學年第二學期期末試卷
- 2025年江西省贛縣三中高三畢業(yè)班第十七模歷史試題含解析
- 長沙醫(yī)學院《影視美術》2023-2024學年第二學期期末試卷
- 南昌航空大學科技學院《聚合物近代儀器分析》2023-2024學年第二學期期末試卷
- 2025年道路運輸企業(yè)主要負責人安全考試練習題(100題)含答案
- 2025屆福建省莆田高中畢業(yè)班第二次質(zhì)量檢測英語試題(原卷版+解析版)
- 2025春蘇少版(2024)美術小學一年級下冊第二單元《有趣的肌理》教學設計
- 2025年安徽財貿(mào)職業(yè)學院單招職業(yè)技能考試題庫及完整答案一套
- 2025年安徽中醫(yī)藥高等??茖W校單招職業(yè)適應性測試題庫有答案
- 北京大學DeepSeek系列-DeepSeek與AIGC應用
- DeepSeek+DeepResearch-讓科研像聊天一樣簡單(內(nèi)含AI學術工具公測版)
- 2025年皖北衛(wèi)生職業(yè)學院單招職業(yè)適應性測試題庫必考題
- 2025年無錫職業(yè)技術學院單招職業(yè)傾向性測試題庫完整版
- 2025年皖西衛(wèi)生職業(yè)學院單招職業(yè)技能測試題庫及答案1套
- 宋代農(nóng)書研究出版對宋代農(nóng)業(yè)研究的價值4篇
評論
0/150
提交評論