




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、程序設(shè)計技術(shù),C語言數(shù)據(jù)描述和C程序設(shè)計初步 結(jié)構(gòu)化程序設(shè)計基礎(chǔ)和C語言的控制結(jié)構(gòu) 數(shù)組及其應(yīng)用 函數(shù)與C程序結(jié)構(gòu) 指針與函數(shù) 指針與數(shù)組 字符串及其應(yīng)用 結(jié)構(gòu)體類型和聯(lián)合體類型 C語言的文件處理及其應(yīng)用 位運算與枚舉類型,本章概要和學習目標,數(shù)組是程序設(shè)計中使用的一種重要的數(shù)據(jù)結(jié)構(gòu)。為了能夠描述出若干相同類型的相關(guān)變量之間內(nèi)在的聯(lián)系,以便合理地使用程序的控制結(jié)構(gòu)對它們進行處理,就需要把相同類型的多個變量按有序的形式組織起來,這些按序排列的相同數(shù)據(jù)類型的存儲單元稱為數(shù)組。 在語言中,組成數(shù)組的每個成員的數(shù)據(jù)類型可以是基本數(shù)據(jù)類型,指針類型或其他構(gòu)造類型,因此數(shù)組可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)
2、組、結(jié)構(gòu)數(shù)組等,本章僅討論數(shù)值類型的數(shù)組及其簡單應(yīng)用。,數(shù)組及其應(yīng)用,3.1 一維數(shù)組 3.1.1 一維數(shù)組的定義和初始化 3.1.2 一維數(shù)組元素的引用方法 3.2 二維數(shù)組和多維數(shù)組 3.2.1 二維數(shù)組和多維數(shù)組的定義 3.2.2 二維數(shù)組和多維數(shù)組元素引用方法 3.3 數(shù)組的簡單應(yīng)用 3.3.1 數(shù)組元素值的隨機生成 3.3.2 常用排序方法 3.3.3 常用查找方法,一維數(shù)組,一維數(shù)組是一組按線性排列有序且個數(shù)有限的同類型變量構(gòu)成的數(shù)據(jù)集合,集合中的數(shù)據(jù)元素使用同一個名字來描述他們之間的共性,同時又通過各自不同的序號描述數(shù)據(jù)集合 中各個數(shù)據(jù)元素之間的關(guān)系。一維數(shù)組在存儲時需要占用連續(xù)
3、的內(nèi)存空間,它們在存儲器中的映像如圖3.1所示,其每一個數(shù)據(jù)元素所占用的字節(jié)長度與它們的數(shù)據(jù)類型相關(guān)。,3.1.1 一維數(shù)組的定義和初始化,在C程序設(shè)計中必須首先對數(shù)組進行定義,然后才能進行數(shù)組的各種操作。一維數(shù)組定義的一般形式: 數(shù)據(jù)類型名 數(shù)組名常量表達式; 其中,方括號在此處是數(shù)組運算符,方括號中的常量表達式值用以指定該數(shù)組可以擁有數(shù)組元素個數(shù),也稱為數(shù)組的長度。數(shù)組的長度一但定義就不能在程序的運行過程中進行修改,在定義數(shù)組時應(yīng)該根據(jù)應(yīng)用的實際情況為數(shù)組長度留有余地。下面是一些數(shù)組定義的示例: int array_int10; floatb10,c20; double arr100;,3
4、.1.1 一維數(shù)組的定義和初始化,定義數(shù)組還要注意以下幾點: (1)數(shù)組名的命名必須符合C語言關(guān)于標識符的書寫規(guī)定。 (2)數(shù)組名也是變量,因此在定義數(shù)組時數(shù)組的名字不能與同一范圍內(nèi)已經(jīng)定義的其它變量名字相同。 (3)定義數(shù)組時,不能用變量來表示數(shù)組的長度(注:在C99標準中可以用變量表示數(shù)組長度),但是可以用符號常數(shù)或常量表達式。下面是一組用于比較的定義形式: (4)允許在同一個定義語句中,定義多個數(shù)組或者混合定義同類型的數(shù)組和簡單變量。 例如:inta,b,c,d,k110,k220;,3.1.1 一維數(shù)組的定義和初始化,(5)可以在定義數(shù)組時用“存儲類型”對數(shù)組進行說明,指定數(shù)組的存儲單
5、元分配到內(nèi)存的靜態(tài)存儲區(qū)或是動態(tài)存儲區(qū)。存儲類型可以是自動的(auto)、靜態(tài)的(static)或者外部的(extern),關(guān)于存儲類別將在4.3節(jié)中詳細介紹。例如,一個靜態(tài)的單精度實型數(shù)組可以定義為: static float score50; C語言允許在數(shù)組定義時給數(shù)組元素賦予初值,這個過程稱為數(shù)組初始化。數(shù)組初始化的一般形式: 數(shù)據(jù)類型名 數(shù)組名存儲單元數(shù)=常量列表; 其中,常量列表中兩項之間用逗號分隔。初始值用常量形式表示,也可以使用常量表達式,但不允許使用含變量的表達式。例如: int a10=1,2,3,4,5,6,7,8,9,10; int b3=1,3*5,4*3-2;,3.
6、1.1 一維數(shù)組的定義和初始化,對數(shù)組進行初始化應(yīng)當注意以下幾點: (1)可以對數(shù)組部分初始化,即中常量值的個數(shù)少于指定的數(shù)組元素個數(shù)。例如: inta10=0,1,2,3,4;/為a0a4元素賦值 (2)若需要將數(shù)組全部元素初始化為0值,可以用如下形式實現(xiàn):int a10=0; (3)不能給數(shù)組整體賦值。例如,inta5=1,1,1,1,1;表示將數(shù)組的所有元素值初始化為1,但不能將其寫成inta10=1; 。 (4)可以省略數(shù)組的長度。例如:inta5=1,2,3,4,5;和inta=1,2,3,4,5;等效。 (5)初始化列表中值的個數(shù)不能超過指定的數(shù)組長度。例如下面的數(shù)組定義是錯誤的:
7、 int a5=1,2,3,4,5,6; /初始值的個數(shù)超過了數(shù)組長度,3.1.2 一維數(shù)組元素的引用方法,C語言中規(guī)定,在一般情況下數(shù)組不能作為一個整體參加數(shù)據(jù)處理,而只能通過處理每一個數(shù)組元素(下標變量)達到處理數(shù)組的目的。一維數(shù)組元素(下標變量)的表示形式為: 數(shù)組名下標 其中,下標值應(yīng)該是整型常數(shù)或表達式,該值表示了數(shù)組元素在一維數(shù)組中的順序號,實型下標值系統(tǒng)會自動取整。 數(shù)組的下標變量和普通變量的用法是相同,凡是普通變量可以出現(xiàn)的地方,下標變量也可以出現(xiàn)。如下面語句序列所示: double a10,y; a5=300;/*將a數(shù)組中第6個元素(5號元素)賦值為300*/ y=500;
8、/*將變量y賦值為500*/,3.1.2 一維數(shù)組元素的引用方法,由于在一般情況下對一維數(shù)組不能整體進行操作,所以對于一維數(shù)組的輸入和輸出操作常用一重循環(huán)的形式進行處理。設(shè)有定義數(shù)組和變量的C語句序列為: double a10; int i; 則數(shù)組a的輸入輸出基本形式如圖3.2所示。,3.1.2 一維數(shù)組元素的引用方法,例3-1 將一個整型數(shù)組中所有元素值在同一個數(shù)組中按逆序重新存放并輸出。 程序一次運行情況如下所示: Input ten value of Array: 21 23 25 27 29 30 32 34 36 38 38 36 34 32 30 29 27 25 23 21 例
9、3-2 在一次選舉中,有五位候選人,分別由15編號,請編程序統(tǒng)計出各位候選人的得票數(shù)并找出得票數(shù)第一名的編號。 程序的一次運行情況如下: 請輸入候選人的編號(-1 表示結(jié)束)1 2 3 4 5 1 1 2 3 4 5 4 3 4 3 1 1 1 5 -1 6 2 4 4 3 票數(shù)最高的候選人編號是:1號。,3.1.2 一維數(shù)組元素的引用方法,例3-3 用數(shù)組存放一組統(tǒng)計數(shù)據(jù),然后用“*”表示的條形圖輸出這組數(shù)據(jù)。程序輸出效果如下所示: Element Value Striation 1 11 * 2 3 * 3 7 * 4 10 * 5 20 * 例3-4 打印如下所示的楊輝三角形的前10行(
10、要求使用一維數(shù)組處理),3.1.2 一維數(shù)組元素的引用方法,程序中,為了簡化對應(yīng)關(guān)系(避免使用0號元素對應(yīng)第一個數(shù)據(jù))使用了一個11個元素的數(shù)組進行處理,由于要求使用一維數(shù)組處理楊輝三角形,所以每生成一行楊輝三角形的元素值后立即將該行值輸出。對每一行楊輝三角形值的具體處理方法為:首先用表達式y(tǒng)hrow=1將該行楊輝三角形的最后一個元素值置1,然后從后向前依次在循環(huán)條件滿足的情況下執(zhí)行表達式:yhcol=yhcol+yhcol-1,該表達式的意思是將一維數(shù)組yh上一次當前位置元素值與其前面一個位置上一次的元素值相加作為本次當前位置上的元素值,圖3.3展示了通過第5行數(shù)據(jù)生成第6行數(shù)據(jù)的情況。,數(shù)
11、組及其應(yīng)用,3.1 一維數(shù)組 3.1.1 一維數(shù)組的定義和初始化 3.1.2 一維數(shù)組元素的引用方法 3.2 二維數(shù)組和多維數(shù)組 3.2.1 二維數(shù)組和多維數(shù)組的定義 3.2.2 二維數(shù)組和多維數(shù)組元素引用方法 3.3 數(shù)組的簡單應(yīng)用 3.3.1 數(shù)組元素值的隨機生成 3.3.2 常用排序方法 3.3.3 常用查找方法,3.2 二維數(shù)組和多維數(shù)組,在程序設(shè)計中如果需要處理諸如矩陣、平面的或立體的圖形等數(shù)據(jù)信息,使用一維數(shù)組顯然不方便,在這種情況下,可以使用二維、三維以至更多維的數(shù)組。一維數(shù)組存儲線性關(guān)系的數(shù)據(jù),二維數(shù)組則可以存儲平面關(guān)系的數(shù)據(jù),三維數(shù)組可以存儲立體信息,依次類推可以合理地使用更
12、高維數(shù)的數(shù)組。 C語言中對多維數(shù)組概念的解釋是:n維數(shù)組是每個元素均為n-1維數(shù)組的一維數(shù)組。由此可以推論出C程序中的二維數(shù)組是由若干個一維數(shù)組作為數(shù)組元素的一維數(shù)組,三維數(shù)組則是由若干個二維數(shù)組作為元素的一維數(shù)組等等,多維數(shù)組的這種概念對理解多維數(shù)組的存儲、處理都有很大的幫助。,3.2.1 二維數(shù)組和多維數(shù)組的定義,二維數(shù)組定義的一般形式為: 數(shù)據(jù)類型符 數(shù)組名常量表達式常量表達式; 多維數(shù)組定義的一般形式為: 數(shù)據(jù)類型符 數(shù)組名常量表達式常量表達式; 例如,int a34, matrix1010;就定義了兩個整型的二維數(shù)組a和matrix,其中a由3行4列共12個元素構(gòu)成;matrix由1
13、010共100個元素組成。而float b333;則定義了一個333共27個元素構(gòu)成的數(shù)組b。,3.2.1 二維數(shù)組和多維數(shù)組的定義,C語言中規(guī)定數(shù)組按“行”存儲,由于計算機系統(tǒng)內(nèi)存是一個線性排列的存儲單元集合,所以當需要將二維或者更多維的數(shù)組存放到系統(tǒng)存儲器中時,必須進行二維空間或多維空間向一維空間的投影。例如有定義語句: int a122,a2222;,則數(shù)組a1和a2在內(nèi)存中存放的形式如圖3.4和3.5所示。,3.2.1 二維數(shù)組和多維數(shù)組的定義,根據(jù)多維數(shù)組在存儲器中按行存儲的規(guī)則和多維數(shù)組的行列順序可以計算出多維數(shù)組元素存儲時在線性連續(xù)存儲單元中的排列序號。 設(shè)有mn(m行n列)二維
14、數(shù)組a,則二維數(shù)組元素aij在數(shù)組的連續(xù)存儲區(qū)域中的單元序號計算公式為:in+j;(行號列數(shù)+列號) 例如有二維數(shù)組定義int a55;,則數(shù)組中的元素a23在線性存儲區(qū)域中的序號為:25+3=13,即將二維數(shù)組投影為一維數(shù)組存儲后,二維空間中的2行3列元素是一維空間中的13號元素。 設(shè)有mnl(m頁n 行l(wèi)列)三維數(shù)組a,則三維數(shù)組元素aijk在數(shù)組的連續(xù)存儲區(qū)域中的單元序號計算公式為: inl+jl+k; (頁號行數(shù)列數(shù)+行號列數(shù)+列號),3.2.1 二維數(shù)組和多維數(shù)組的定義,二維和多維數(shù)組也可以進行初始化,以二維數(shù)組和三維數(shù)組為例,初始化的方式有兩種: 分行賦值初始化方式 二維(多維)數(shù)
15、組分行初始化方式是將二維(多維)數(shù)組分解為若干個一維數(shù)組,然后依次向這些一維數(shù)組賦初值,賦值時使用大括號(花括號)嵌套的方法區(qū)分每一個一維數(shù)組,例如: int a23=1,1,1,2,2,2; int a1233=1,1,1,2,2,2,3,3,3, 4,4,4,5,5,5,6,6,6; 單行賦值初始化方式 二維(多維)數(shù)組單行初始化方式是使用一個數(shù)據(jù)序列為多維數(shù)組賦初值。使用這種方式時將所有的初始化數(shù)據(jù)依次寫在一個大括號中,書寫時要注意數(shù)據(jù)應(yīng)該的排列順序。例如: int a23=1,1,1,2,2,2; int a1234=1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4, 5
16、,5,5,5,6,6,6,6;,3.2.1 二維數(shù)組和多維數(shù)組的定義,對于二維數(shù)組或多維數(shù)組的初始化,還需要注意以下幾點: 初始化只給出部分數(shù)組元素的初始值。這種方法稱為部分初始化,此時未初始化元素值為0(字符類為0)。 例如,int a23=1,1,2,2;,則初始化后二維數(shù)組a的取值形式如圖3.6所示。 例如,int arr23=1,1,2,2;,則初始化后二維數(shù)組a的取值形式如圖3.7所示,讀者應(yīng)該特別注意上面兩個初始化示例以及圖3.6與圖3.7的區(qū)別。,3.2.1 二維數(shù)組和多維數(shù)組的定義,同樣,如果需要將二維數(shù)組或多維數(shù)組的所有元素值置初始為0,可按如下所示的部分初始化形式即可: i
17、nt b1020=0;/*將b數(shù)組的200個元素初始化為0值*/ int c10010050=0;/*將數(shù)組c的50萬個元素初始化為0值*/ 數(shù)組的長度可以由初始化元素值的個數(shù)確定。 初始化時,如果多維數(shù)組最高維的長度沒有指定,則系統(tǒng)通過對初始化序列中數(shù)值的個數(shù)的統(tǒng)計計算來確定多維數(shù)組最高維的長度,或者說如果在初始化時給出了全部的數(shù)組元素初始值,可以不指定多維數(shù)組最高維的長度。但需要特別提醒的是,如果僅定義數(shù)組沒有初始化則必須指定數(shù)組的長度。 例如,int a3=1,1,1,2,2,2; 例如,int a13=1,1,1,2,2,2; 多維數(shù)組初始化數(shù)值的個數(shù)不能大于指定的數(shù)組各個長度。例如下
18、面多維數(shù)組初始化形式是錯誤的: int a123=1,1,1,2,2,2,3,3,3; /*初始化表中的數(shù)值個數(shù)太多*/,3.2.2 二維數(shù)組和多維數(shù)組元素引用方法,二維和多維數(shù)組在程序設(shè)計中也不能作為一個整體進行處理,而只能通過處理每一個下標變量(數(shù)組元素)達到處理數(shù)組的目的。二維數(shù)組和多維數(shù)組元素的下標表示分別為: 數(shù)組名下標下標; 和 數(shù)組名下標下標; 其中,下標值應(yīng)該是整型常數(shù)或表達式,該值表示了數(shù)組元素(下標變量)在多維數(shù)組中的位置,如果下標值是實型數(shù)據(jù)系統(tǒng)會自動將其取整。 數(shù)組的下標變量和普通變量的用法是相同,凡是普通變量可以出現(xiàn)的地方,下標變量也可以出現(xiàn)。例如有定義:double
19、 a55,y;,則該語句同時定義了26個實型變量,只不過前面25個a00a44屬于某一個集體,而 y則是一單個普通變量。 double a55,y; a23=300;/*將a數(shù)組中2行3列元素賦值為300*/ y=500;/*將變量y賦值為500*/,3.2.2 二維數(shù)組和多維數(shù)組元素引用方法,對于二維數(shù)組的輸入輸出一般使用二重循環(huán),同理可以使用多重循環(huán)處理多維數(shù)組的輸入輸出問題。設(shè)有定義語句:int a510,i,j;,則數(shù)組a的輸入輸出基本形式如圖3.8 所示。,3.2.2 二維數(shù)組和多維數(shù)組元素引用方法,例3-5 在二維數(shù)組a34中依次選出各行最大元素值存入一維數(shù)組b3對應(yīng)元素中。 程序
20、運行結(jié)果: array a: 3 16 87 65 4 32 11 108 10 25 12 27 array b: 87 108 27,3.2.2 二維數(shù)組和多維數(shù)組元素引用方法,例3-6 編程序輸出魔方陣。所謂魔方陣是指一個由整數(shù)構(gòu)成的奇數(shù)矩陣中,任意一行、任意一列以及對角線的所有數(shù)之和均相等。例如,一個三階的魔方陣如圖3.9所示。 n階的自然數(shù)構(gòu)成的魔方陣中各數(shù)的排列規(guī)律: (1)將“1”放在魔方陣的第一行中間一列; (2)從“2”開始直到n*n的各數(shù)依次按下列規(guī)則存放:每一個數(shù)存放的行比前一個數(shù)的行數(shù)減1、列數(shù)加1; (3)如果上一個數(shù)的行數(shù)為1,下一個數(shù)的行數(shù)為n;如果上一個數(shù)的列數(shù)
21、為n,下一個數(shù)的列數(shù)為1; (4)如果按上面規(guī)則確定的位置上有數(shù)(不為零),或者上一個數(shù)是第1行第n列時,則把下一個數(shù)放在上一個數(shù)的下面。,數(shù)組及其應(yīng)用,3.1 一維數(shù)組 3.1.1 一維數(shù)組的定義和初始化 3.1.2 一維數(shù)組元素的引用方法 3.2 二維數(shù)組和多維數(shù)組 3.2.1 二維數(shù)組和多維數(shù)組的定義 3.2.2 二維數(shù)組和多維數(shù)組元素引用方法 3.3 數(shù)組的簡單應(yīng)用 3.3.1 數(shù)組元素值的隨機生成 3.3.2 常用排序方法 3.3.3 常用查找方法,3.3.1 數(shù)組元素值的隨機生成,為了能夠在學習程序設(shè)計的過程中深刻體會被處理數(shù)據(jù)的多樣性和不可預見性,有必要用某種方法來模擬所處理的數(shù)
22、據(jù)。讓計算機自動生成 “隨機數(shù)”就是一種比較好的模擬數(shù)據(jù)方法。為了能夠在程序中產(chǎn)生隨機生成的數(shù)據(jù),需要使用C語言提供的srand、rand和time等3個標準庫函數(shù)。 Srand函數(shù)的功能是初始化隨機數(shù)發(fā)生器,函數(shù)原型在頭文件stdlib.h中聲明,其原型為: void srand( unsigned int seed ); rand函數(shù)的功能是隨機產(chǎn)生一個在0到RAND_MAX(0 x7fff)之間的一個正整數(shù),函數(shù)的原型在頭文件stdlib.h中聲明如下所示: int rand( void );,3.3.1 數(shù)組元素值的隨機生成,time函數(shù)的功能是獲取系統(tǒng)時間,函數(shù)原型在頭文件time.
23、h中聲明,其原型為: time_t time( time_t *timer ); 其中的數(shù)據(jù)類型time_t是一個系統(tǒng)定義好的一個長整型數(shù)據(jù)類型,其變量用于存放從系統(tǒng)中取出的以秒為單位的整型數(shù)據(jù),參數(shù)time_t *timer 表示用timer數(shù)據(jù)對象保存取出的時間值,調(diào)用時用空(NULL)作為參數(shù)(即調(diào)用形式為:time(NULL))則表示只需要用其返回的長整數(shù)值而不需要保存該值。 下面通過兩個示例討論隨機生成一維數(shù)組和二維數(shù)組元素值的問題。,3.3.1 數(shù)組元素值的隨機生成,例3-7 隨機生成20個3位以內(nèi)的整數(shù)序列存放在一維數(shù)組中,然后按每行5個數(shù)輸出所有數(shù)組元素。 程序一次運行結(jié)果為:
24、 659 100 184 135 876 348 934 293 587 338 179 243 523 799 653 234 657 439 776 297 例3-8 編程序?qū)崿F(xiàn)如圖3.10形式的矩陣轉(zhuǎn)置功能,即將NM矩陣轉(zhuǎn)換為MN矩陣;要求被處理的二維數(shù)組元素值(2位數(shù)以內(nèi))隨機產(chǎn)生。,3.3.2數(shù)組的常用排序方法,排序是用計算機處理數(shù)據(jù)的一種常見的重要操作,其作用是將數(shù)組中的數(shù)據(jù)按照特定順序,如升序或降序重新排列組織。排序分為內(nèi)部排序和外部排序。在進行內(nèi)部排序時,要求被處理的數(shù)據(jù)全部進入計算機系統(tǒng)的內(nèi)(主)存儲器,整個排序過程都在計算機系統(tǒng)的內(nèi)存儲器中完成。針對不同的實際應(yīng)用,數(shù)據(jù)排序
25、方法有很多種。本節(jié)介紹幾種基本的內(nèi)部排序思想,幫助讀者初步理解排序方法的計算機解決思路。,3.3.2數(shù)組的常用排序方法,1冒泡排序(Bubble sorting) 冒泡排序算法的基本思想是兩兩比較待排序數(shù)據(jù)序列中的數(shù)據(jù),根據(jù)比較結(jié)果來對換這兩個數(shù)據(jù)在序列中的位置。其算法基本概念可描述如下: 從待排序列中第一個位置開始,依次比較相鄰兩個位置上的數(shù)據(jù),若是逆序則交換,一趟掃描后,最大(或最?。┑臄?shù)據(jù)被交換到了最右邊。 不考慮已排好序的數(shù)據(jù),將剩下的數(shù)據(jù)作為待排序列。 重復、兩步直到排序完成,n個記錄的排序最多進行n-1趟。,3.3.2數(shù)組的常用排序方法,例3-9 編程序?qū)崿F(xiàn)冒泡排序算法,對隨機生成
26、的20個整數(shù)按升序進行排序并輸出。 上面程序中用變量flag作為標志,每一趟排序開始時將其設(shè)置為0,當本趟排序過程中有數(shù)據(jù)交換時將flag設(shè)置為1,表示數(shù)據(jù)還沒有排序完成;當本趟排序過程中沒有一次數(shù)據(jù)交換時,flag保持為0值,表示被排序的數(shù)據(jù)已經(jīng)完全滿足排序的要求,沒有必要再繼續(xù)進行以后的排序過程,程序中用break語句退出排序循環(huán)。 程序的一次執(zhí)行結(jié)果為: Before sorting . 293 31 365 849 867 166 487 826 487 775 331 630 294 5 242 136 953 123 849 65 After sorting . 5 31 65 1
27、23 136 166 242 293 294 331 365 487 487 630 775 826 849 849 867 953,3.3.2數(shù)組的常用排序方法,2選擇排序(Select sorting) 選擇排序法的基本思想是對于待排的n個數(shù)據(jù),在其中尋找最大(或最?。┑臄?shù)值,并將其移動到的最前面作為其第一個數(shù)據(jù);在剩下的N-1個數(shù)據(jù)中用相同的方法尋找最大(或最?。┑臄?shù)值,并將其作為第二個數(shù)據(jù);以此類推,直到將整個待排數(shù)據(jù)集合處理完為止(只剩下一個待處理數(shù)據(jù))。選擇排序的基本方法是: 在所有的記錄中選取關(guān)鍵字值最大(或最?。┑挠涗洠⑵渑c第一個記錄交換位置。 將上次操作完成后剩下的記錄中
28、構(gòu)成一個新處理數(shù)據(jù)集。 在新處理數(shù)據(jù)集的所有記錄中選取關(guān)鍵字值最大(或最小)的記錄,并將其與新處理數(shù)據(jù)集中第一個記錄交換位置。 如果還有待處理記錄,轉(zhuǎn)到。,3.3.2數(shù)組的常用排序方法,例3-10 編程序?qū)崿F(xiàn)選擇排序算法,對隨機生成的20個整數(shù)按升序進行排序并輸出。 程序的一次運行結(jié)果為: Before sorting . 341 74 545 498 809 626 913 433 567 560 130 479 505 95 96 143 851 634 830 665 After sorting . 74 95 96 130 143 341 433 479 498 505 545 560 567 626 634 665 809 830 851 913,3.3.3 數(shù)組的常用查找方法,查找也稱為檢索,其基本概念就是在一個記錄的集合中找出符合某種條件的記錄。查找的結(jié)果有兩種:在表中如果找到了與給定的關(guān)鍵字值相符合的記錄,稱為成功的查找,根據(jù)需要可以獲取所找記錄的數(shù)據(jù)信息或給出記錄的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文科科研課題項目申報書
- 市級重點課題申報書模板
- 課題立項申報書丟了
- 高職病理課題申報書
- 傳統(tǒng)文化相關(guān)課題申報書
- 廣東省課題申報書重復率
- 山東省課題申報書范文
- 出租雜物小倉庫合同范本
- 單位食堂蔬菜配送合同范例
- 怎么拿到省級課題申報書
- 海智工作站申報計劃書
- 托管崗前培訓教學課件
- 機房運維管理制度
- 消渴病中醫(yī)護理的方案
- 昆明撫仙湖鰭魚灣棋盤山度假娛樂旅游區(qū)總體規(guī)劃方案樣本
- 突發(fā)疾病時的安全駕駛方法
- 污水處理廠入河排污口設(shè)置論證報告
- T-SHNA 0005-2023 成人住院患者腸外營養(yǎng)輸注護理
- 課件:認識鏡頭語言1:運鏡方式和常用的鏡頭術(shù)語
- 職業(yè)道德(Professionalethics)教學課件
- 提升醫(yī)療質(zhì)量減少醫(yī)療糾紛
評論
0/150
提交評論