版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
一維數(shù)組和冒泡算法本次課程內(nèi)容課程目標(biāo):了解數(shù)組的概念掌握一維數(shù)組的定義,初始化和取用掌握排序算法:”冒泡排序”(難點(diǎn))1要解決的問題在現(xiàn)實(shí)生活中,我們需要描述的事物,往往數(shù)量很多的。如果每個(gè)事物都要用一個(gè)變量來表示,那么需要多少變量呢?例:學(xué)員管理系統(tǒng)之成績管理的子功能1、成績錄入:需要輸入100個(gè)學(xué)生的成績2、求平均成績和合格率3、求最高分、最低分C++成績90456885789477…882一維數(shù)組的引入3分析:我們需要定義100個(gè)變量來分別保存100個(gè)人的成績,每個(gè)變量都互相獨(dú)立,沒有聯(lián)系,不便于對其進(jìn)行有效的操作。intnScore1;intnScore2;intnScore3;:::intnScore100;nScore1=80;nScore2=75;nScore3=90;:::nScore100=76;printf(“%d”,nScore1);printf(“%d”,nScore2);printf(“%d”,nScore3);:::printf(“%d”,nScore100);變量定義變量賦值變量打印如果需要保存1000個(gè)學(xué)生的成績怎么辦?數(shù)組的概念(書P98頁)4數(shù)組就是一組固定數(shù)量的相同類型的數(shù)的集合,并且數(shù)組中的元素在邏輯上是相關(guān)的。數(shù)組中數(shù)據(jù)的三要素:數(shù)量固定類型相同邏輯相關(guān)如:100個(gè)學(xué)生的成績就可以構(gòu)成一個(gè)數(shù)組1、數(shù)目固定為100個(gè)學(xué)生的成績2、表示成績的數(shù)據(jù)均為整型3、在邏輯上都是表達(dá)學(xué)員的成績數(shù)組的定義形式(書P99頁)5Type數(shù)組名[n]Type----數(shù)組元素類型
n----數(shù)組元素個(gè)數(shù)例:intStdScore[100];表示StdScore是一個(gè)有100個(gè)整型元素的數(shù)組,其可以保存100個(gè)學(xué)員的成績。constintnNum=10;intnArr1[10];intnArr2[5+3];intnArr3[nNum];intnNum=10;intnArr1[nNum];intnArr2[10.5];正確定義錯(cuò)誤定義元素個(gè)數(shù)必須是整型常量、數(shù)字常量或整形常量表達(dá)式一維數(shù)組元素的存取6C下通過給定相應(yīng)下標(biāo)來存取數(shù)組中的元素。下標(biāo)既元素在數(shù)組的位置。注意:C中下標(biāo)是從0開始計(jì)數(shù)的,因此對于數(shù)組intnArray[n]其最小下標(biāo)為0,最大下標(biāo)為n-1。nArray[0]取得第一個(gè)元素nArray[1]取得第二個(gè)元素nArray[2]取得第三個(gè)元素nArray[3]取得第四個(gè)元素……….nArray[n-1]取得第n個(gè)元素C中下標(biāo)是從0開始計(jì)數(shù)注意解決問題例:學(xué)員管理系統(tǒng)之成績管理的子功能1、成績錄入:需要輸入100個(gè)學(xué)生的成績7學(xué)員研討(20min)例:學(xué)員管理系統(tǒng)之成績管理的子功能1、成績錄入:需要輸入100個(gè)學(xué)生的成績2、求平均成績和合格率3、求最高分、最低分4、查詢?nèi)砍煽儗W(xué)員解決方案的評比演示教學(xué)示例student8數(shù)組的應(yīng)用:學(xué)員研討(20min)例:酒店管理系統(tǒng)之客房管理的子功能(有80間房)1、開房2、未入住房間查詢3、已入住房間查詢演示教學(xué)示例Hospital9一維數(shù)組的初始化(書P99頁)
在定義數(shù)組時(shí),可以對數(shù)組的每個(gè)元素進(jìn)行初始化。如下定義一個(gè)10個(gè)整型元素的數(shù)組,并初始化每個(gè)元素的值為510intnArray[10]={5,5,5,5,5,5,5,5,5,5};
如果初始化的提供的數(shù)值小于數(shù)組元素個(gè)數(shù),則未初始化部分自動(dòng)初始化為0,如下:intnArray[10]={5,5,5};數(shù)組中的前三個(gè)元素值初始化為5,其余七個(gè)均初始化為0
如果定義數(shù)組時(shí)提供了初始化,則數(shù)組元素個(gè)數(shù)可以省略,數(shù)組元素個(gè)數(shù)就是初始化元素的個(gè)數(shù)。intnArray[]={5,5,5,5,5};nArray有五個(gè)整型元素,每個(gè)元素初始化值為5數(shù)組在內(nèi)存中的存放形式(理論重點(diǎn))11數(shù)組是一組類型相同數(shù)的集合。數(shù)組中的每個(gè)元素在內(nèi)存中是連續(xù)存放的。如:intnArr[5]={0,10,100,20,30};的內(nèi)存存放形式如圖010100203012ff6012ff6412ff6812ff6c12ff70地址nArr[0]nArr[1]nArr[2]nArr[3]nArr[4]數(shù)組元素4字節(jié)4*5字節(jié)數(shù)組中每個(gè)元素的地址都是連續(xù)的。例:如果nArr[0]的地址是12ff60;
那么nArr[2]的地址=12ff60+2*4=12ff68;12數(shù)組可以存儲多個(gè)數(shù)據(jù),但必須在使用前指定容量大小,也就是說如果數(shù)據(jù)太多,超過容量就會溢出。這個(gè)問題可以解決嗎?怎樣解決?如果數(shù)據(jù)的數(shù)量是變化的怎么辦?課后思考算法13冒泡法
選擇法請將下列一組數(shù)據(jù)按其值由大到小排列并輸出插入法希爾法比較交換7580785666499486冒泡排序算法(書P102頁)14
44冒泡排序算法是通過循環(huán)比較下標(biāo)為i+1和i兩個(gè)元素,并交換位置.如果是升序排序則一次循環(huán)完成后,數(shù)組中的最大數(shù)就冒到了數(shù)組頂部,然后對數(shù)組剩下的部分重復(fù)上面的步驟,直到所有元素都排序完成.335522113344552211334455221133442255113344221155第一趟比較
3344221155334422115533224411553322114455第二趟比較
332211445522331144552211334455第三趟比較
22113344551122334455第四趟比較冒泡排序算法流程15冒泡排序法需要兩重循環(huán),內(nèi)部循環(huán)用于對數(shù)組未排序部分進(jìn)行循環(huán)比較;外部循環(huán)用于控制內(nèi)部循環(huán)次數(shù)。外部循環(huán)次數(shù)為數(shù)組個(gè)數(shù)減1.現(xiàn)假設(shè)數(shù)組元素個(gè)數(shù)為N。nI<N-1成立不成立定義nI,用于控制外部循環(huán)次數(shù)結(jié)束流程圖nJ<N-nI-1成立不成立交換兩元素定義nJ,用于控制內(nèi)部循環(huán)次數(shù)arr[nJ]>arr[nJ+1]流程圖不成立成立未排序元素個(gè)數(shù)對未排序元素進(jìn)行比較結(jié)束冒泡排序算法代碼實(shí)現(xiàn)16voidPpSort(intar[],intnSize){for(intnI=0;nI<nSize–1;nI++) //外部循環(huán)
{for(intnJ=0;nJ<nSize–nI–1;nJ++) //內(nèi)部循環(huán)
{inttemp; if(ar[nJ]<ar[nJ+1]) //相鄰元素比較
{ temp=ar[nJ]; //值交換
ar[nJ]=ar[nJ+1]; ar[nJ+1]=temp; }}}
}內(nèi)部循環(huán)程序代碼數(shù)組作為參數(shù)傳遞時(shí),可省略元素個(gè)數(shù)學(xué)員研討(20min)例:學(xué)員管理系統(tǒng)之成績管理的子功能1、成績錄入:需要輸入100個(gè)學(xué)生的成績2、求平均成績和合格率3、求最高分、最低分4、查詢?nèi)砍煽?/p>
5、成績排序:要求從高到低排序?qū)W員解決方案的評比17本講小結(jié)通過數(shù)組可以保存一組個(gè)數(shù)固定、類型相同、邏輯上相關(guān)的數(shù)據(jù)通過下標(biāo)取數(shù)組元素時(shí),注意下標(biāo)從0開始。在定義數(shù)組時(shí)可以對每個(gè)元素進(jìn)行初始化冒泡算法的使用18預(yù)習(xí)參數(shù)傳遞方式:按地址傳遞排序算法:“選擇排序”二維數(shù)組1920
請將下列一組數(shù)據(jù)讀入到S數(shù)組中
30,56,88,45,100,20main(){ints[6],i;for(i=0;i<6;i++)scanf(“%d,”,&s[i]);for(i=0;i<6;i++)printf(“%4d”,s[i]);}
數(shù)組的建立與輸出1數(shù)組的應(yīng)用----對數(shù)組的建立、數(shù)
組元素的引用以及對數(shù)組元素的輸出
請將下列一組數(shù)據(jù)讀入到S數(shù)組中,并從中找出最小的值并輸出。
30,56,88,45,100,20main(){ints[6]={30,56,88,45,100,20,i,min=s[0];for(i=1;i<6;i++)if(s[i]<min)min=s[i];printf(“%d”,min);}
對數(shù)組元素的引用2數(shù)組的應(yīng)用----對數(shù)組的建立、數(shù)
組元素的引用以及對數(shù)組元素的輸出數(shù)組的應(yīng)用----訪問數(shù)組每個(gè)元素并求元素值之和
通過下標(biāo)我們可以通過一個(gè)循環(huán)非常方便得取得數(shù)組的每個(gè)元素。22#include<stdio.h>voidmain(void){intnArray[10]={0,1,2,3,4,5,6,7,8,9};
//定義數(shù)組
intnSum=0; //用于保存數(shù)組的和
for(intnIndex=0;nIndex<10;nIndex++)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二零二五年度新型環(huán)保肥料研發(fā)與應(yīng)用協(xié)議4篇
- 《現(xiàn)代企業(yè)與組織》課件
- 二零二五年度足浴店員工勞動(dòng)合同與職業(yè)素養(yǎng)培訓(xùn)
- 2025年度銷售人員銷售區(qū)域管理合同范本
- 二零二五飯店短期客房清潔工勞務(wù)服務(wù)合同
- 水庫水面環(huán)境保護(hù)與美化2025年度承包合同2篇
- 2025年度租房意外責(zé)任賠償及責(zé)任分擔(dān)協(xié)議
- 2025年銀行貸款居間中介服務(wù)合同規(guī)范文本
- 2025年度電商直播帶貨合作推廣合同
- 二零二五年度電梯維保與電梯安全責(zé)任保險(xiǎn)合同
- 獅子王影視鑒賞
- 一年級數(shù)學(xué)加減法口算題每日一練(25套打印版)
- 2024年甘肅省武威市、嘉峪關(guān)市、臨夏州中考英語真題
- DL-T573-2021電力變壓器檢修導(dǎo)則
- 繪本《圖書館獅子》原文
- 安全使用公共WiFi網(wǎng)絡(luò)的方法
- 2023年管理學(xué)原理考試題庫附答案
- 【可行性報(bào)告】2023年電動(dòng)自行車相關(guān)項(xiàng)目可行性研究報(bào)告
- 歐洲食品與飲料行業(yè)數(shù)據(jù)與趨勢
- 放療科室規(guī)章制度(二篇)
- 中高職貫通培養(yǎng)三二分段(中職階段)新能源汽車檢測與維修專業(yè)課程體系
評論
0/150
提交評論