計算機(jī)二級公共基礎(chǔ)知識總結(jié) 數(shù)據(jù)結(jié)構(gòu)與算法 1.1 算法 算法:是指解題方案的準(zhǔn)確而完整的描述。
算法不等于程序,也不等計算機(jī)方法,程序的編制不可能優(yōu)于算法的設(shè)計。 算法的基本特征:是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,每一個規(guī)則都是有效的,是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。
特征包括: (1)可行性; (2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋,不允許有多義性; (3)有窮性,算法必須能在有限的時間內(nèi)做完,即能在執(zhí)行有限個步驟后終止,包括合理的執(zhí)行時間的含義; (4)擁有足夠的情報。 算法的基本要素:一是對數(shù)據(jù)對象的運(yùn)算和操作;二是算法的控制結(jié)構(gòu)。
指令系統(tǒng):一個計算機(jī)系統(tǒng)能執(zhí)行的所有指令的集合。 基本運(yùn)算和操作包括:算術(shù)運(yùn)算、邏輯運(yùn)算、關(guān)系運(yùn)算、數(shù)據(jù)傳輸。
算法的控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。 算法基本設(shè)計方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法。
算法復(fù)雜度:算法時間復(fù)雜度和算法空間復(fù)雜度。 算法時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量。
算法空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。 1.2 數(shù)據(jù)結(jié)構(gòu)的基本基本概念 數(shù)據(jù)結(jié)構(gòu)研究的三個方面: (1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu); (2)在對數(shù)據(jù)進(jìn)行處理時,各數(shù)據(jù)元素在計算機(jī)中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu); (3)對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。
數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合。 數(shù)據(jù)的邏輯結(jié)構(gòu)包含: (1)表示數(shù)據(jù)元素的信息; (2)表示各數(shù)據(jù)元素之間的前后件關(guān)系。
數(shù)據(jù)的存儲結(jié)構(gòu)有順序、鏈接、索引等。 線性結(jié)構(gòu)條件: (1)有且只有一個根結(jié)點(diǎn); (2)每一個結(jié)點(diǎn)最多有一個前件,也最多有一個后件。
非線性結(jié)構(gòu):不滿足線性結(jié)構(gòu)條件的數(shù)據(jù)結(jié)構(gòu)。 1.3 線性表及其順序存儲結(jié)構(gòu) 線性表由一組數(shù)據(jù)元素構(gòu)成,數(shù)據(jù)元素的位置只取決于自己的序號,元素之間的相對位置是線性的。
在復(fù)雜線性表中,由若干項數(shù)據(jù)元素組成的數(shù)據(jù)元素稱為記錄,而由多個記錄構(gòu)成的線性表又稱為文件。 非空線性表的結(jié)構(gòu)特征: (1)且只有一個根結(jié)點(diǎn)a1,它無前件; (2)有且只有一個終端結(jié)點(diǎn)an,它無后件; (3)除根結(jié)點(diǎn)與終端結(jié)點(diǎn)外,其他所有結(jié)點(diǎn)有且只有一個前件,也有且只有一個后件。
結(jié)點(diǎn)個數(shù)n稱為線性表的長度,當(dāng)n=0時,稱為空表。 線性表的順序存儲結(jié)構(gòu)具有以下兩個基本特點(diǎn): (1)線性表中所有元素的所占的存儲空間是連續(xù)的; (2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。
ai的存儲地址為:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)為第一個元素的地址,k代表每個元素占的字節(jié)數(shù)。 順序表的運(yùn)算:插入、刪除。
(詳見14--16頁) 1.4 棧和隊列 棧是限定在一端進(jìn)行插入與刪除的線性表,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。 棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù),棧具有記憶作用。
用top表示棧頂位置,用bottom表示棧底。 棧的基本運(yùn)算:(1)插入元素稱為入棧運(yùn)算;(2)刪除元素稱為退棧運(yùn)算;(3)讀棧頂元素是將棧頂元素賦給一個指定的變量,此時指針無變化。
隊列是指允許在一端(隊尾)進(jìn)入插入,而在另一端(隊頭)進(jìn)行刪除的線性表。Rear指針指向隊尾,front指針指向隊頭。
隊列是“先進(jìn)行出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。 隊列運(yùn)算包括(1)入隊運(yùn)算:從隊尾插入一個元素;(2)退隊運(yùn)算:從隊頭刪除一個元素。
循環(huán)隊列:s=0表示隊列空,s=1且front=rear表示隊列滿 1.5 線性鏈表 數(shù)據(jù)結(jié)構(gòu)中的每一個結(jié)點(diǎn)對應(yīng)于一個存儲單元,這種存儲單元稱為存儲結(jié)點(diǎn),簡稱結(jié)點(diǎn)。 結(jié)點(diǎn)由兩部分組成:(1)用于存儲數(shù)據(jù)元素值,稱為數(shù)據(jù)域;(2)用于存放指針,稱為指針域,用于指向前一個或后一個結(jié)點(diǎn)。
在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。 鏈?zhǔn)酱鎯Ψ绞郊纯捎糜诒硎揪€性結(jié)構(gòu),也可用于表示非線性結(jié)構(gòu)。
線性鏈表,HEAD稱為頭指針,HEAD=NULL(或0)稱為空表,如果是兩指針:左指針(Llink)指向前件結(jié)點(diǎn),右指針(Rlink)指向后件結(jié)點(diǎn)。 線性鏈表的基本運(yùn)算:查找、插入、刪除。
1.6 樹與二叉樹 樹是一種簡單的非線性結(jié)構(gòu),所有元素之間具有明顯的層次特性。 在樹結(jié)構(gòu)中,每一個結(jié)點(diǎn)只有一個前件,稱為父結(jié)點(diǎn),沒有前件的結(jié)點(diǎn)只有一個,稱為樹的根結(jié)點(diǎn),簡稱樹的根。
每一個結(jié)點(diǎn)可以有多個后件,稱為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒有后件的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。
在樹結(jié)構(gòu)中,一個結(jié)點(diǎn)所擁有的后件的個數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹的度。樹的最大層次稱為樹的深度。
二叉樹的特點(diǎn):(1)非空二叉樹只有一個根結(jié)點(diǎn);(2)每一個結(jié)點(diǎn)最多有兩棵子樹,且分別稱為該結(jié)點(diǎn)的左子樹與右子樹。 二叉樹的基本性質(zhì): (1)在二叉樹的第k層上,最多有2k-1(k≥1)個結(jié)點(diǎn); (2)深度為m的二叉樹最多有2m-1個結(jié)點(diǎn); (3)度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)。
為了方便計算機(jī)等級試,特意整理出來的。
第一章數(shù)據(jù)結(jié)構(gòu)與算法1算法是解題方案的準(zhǔn)確而完整的描述,它不等于程序,也不等于計算方法?;咎卣鳎嚎尚行浴⒋_定性、有窮性、擁有足夠的情報。
2算法復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。時間復(fù)雜度:用來衡量算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。
空間復(fù)雜度:用來衡量算法執(zhí)行過程中所需要的存儲空間。3數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容:(1)數(shù)據(jù)的邏輯結(jié)構(gòu)(2)數(shù)據(jù)的存儲結(jié)構(gòu)(3)對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算4研究數(shù)據(jù)結(jié)構(gòu)的主要目的:提高數(shù)據(jù)處理的效率。
5數(shù)據(jù)結(jié)構(gòu)的定義:指相互關(guān)聯(lián)的數(shù)據(jù)元素的集合。6數(shù)據(jù)的邏輯結(jié)構(gòu)反映數(shù)據(jù)元素之間的邏輯關(guān)系,數(shù)據(jù)的存儲結(jié)構(gòu)是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間的存放形式。
同一種邏輯結(jié)構(gòu)可以采用不同存儲結(jié)構(gòu),但影響數(shù)據(jù)處理效率。7數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)常見線性結(jié)構(gòu):線性表、棧、隊列、線性鏈表常用非線性結(jié)構(gòu):樹、二叉樹、圖8線性表示由n(n>=0)個相同類型的數(shù)據(jù)元素構(gòu)成的有限序列。
結(jié)構(gòu)特征:(1)數(shù)據(jù)元素在表中的位置由序號決定,數(shù)據(jù)元素之間的相對位置是線性的(2)對于一個非空線性表,有且只有一個根節(jié)點(diǎn)a1,它無前件,有且只有一個終端結(jié)點(diǎn)an,它無后件,除根結(jié)點(diǎn)與終端結(jié)點(diǎn)外,其他所有結(jié)點(diǎn)有且只有一個前件,也有且只有一個后件?;敬鎯Y(jié)構(gòu):(1)順序存儲(2)鏈?zhǔn)酱鎯?順序表的插入運(yùn)算時需要移動元素,在等概率情況下,平均需要移動n/2個元素。
10進(jìn)行順序表的刪除運(yùn)算時也需要移動元素,在等概率情況下,平均移動(n-1)/2個元素。11棧只能在棧頂插入或刪除元素,是一種先進(jìn)后出FILO(或稱為后入先出LIFO)的線性表。
12隊列是只能從隊尾插入元素,在隊頭刪除元素,是一種先進(jìn)先出FIFO(或后入后出LILO)的線性表。13線性鏈表不能隨機(jī)存取。
14在線性鏈表中插入元素時,不需要移動數(shù)據(jù)元素,只需要修改相關(guān)結(jié)點(diǎn)指針即可,也不會出現(xiàn)“上溢”現(xiàn)象。15在線性鏈表中刪除元素時,也不需要移動數(shù)據(jù)元素,只需要修改相關(guān)結(jié)點(diǎn)指針即可。
16循環(huán)鏈表實單鏈表基礎(chǔ)上增加了一個表頭結(jié)點(diǎn),其插入和刪除運(yùn)算與單鏈表相同,可以從任意結(jié)點(diǎn)出發(fā)來訪問表中其他所有結(jié)點(diǎn),并實現(xiàn)空表與非空表的運(yùn)算。17一般二叉樹通常采用鏈?zhǔn)酱鎯Y(jié)構(gòu),對于滿二叉樹與完全二叉樹來說,可以按層序進(jìn)行順序存儲。
18二分查找知識用于順序存儲的線性表,對于無序線性表和線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)只能用順序查找。19冒泡排序是每一趟都會把較小的元素先前移動,最壞比較次數(shù)是n(n-1)/2。
20簡單插入排序法是將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,最壞比較次數(shù)為n(n-1)/2。21希爾排序法的基本思想:將無序序列劃分成若干個子序列(又相隔某個增量h的元素組成)分別進(jìn)行直接插入排序,待整個序列中的元素基本有序(增量足夠?。r,在對全體元素進(jìn)行一次直接插入排序。
因為直接插入排序在元素基本有序的情況下(接近最好情況),效率是很高的。22選擇排序每一趟都是找出無序序列中的最小一個元素,最壞比較次數(shù)為n(n-1)/2。
23排序技術(shù):(1)交換排序法:冒泡排序、快速排序(2)插入排序法:簡單插入排序法、希爾排序(3)選擇排序法:簡單選擇排序法、堆排序法。
公共基礎(chǔ)知識
基本要求
1.掌握算法的基本概念。
2.掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。
3.掌握基本排序和查找算法。
4.掌握逐步求精的結(jié)構(gòu)化程序設(shè)計方法。
5.掌握軟件工程的基本方法,具有初步應(yīng)用相關(guān)技術(shù)進(jìn)行軟件開發(fā)的能力。
6.掌握數(shù)據(jù)庫的基本知識,了解關(guān)系數(shù)據(jù)庫的設(shè)計。
考試內(nèi)容
一、基本數(shù)據(jù)結(jié)構(gòu)與算法
1.算法的基本概念;算法復(fù)雜度的概念和意義(時間復(fù)雜度與空間復(fù)雜度)。
2.數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。
3.線性表的定義;線性表的順序存儲結(jié)構(gòu)及其插入與刪除運(yùn)算。
4.棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運(yùn)算。
5.線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。
6.樹的基本概念;二叉樹的定義及其存儲結(jié)構(gòu);二叉樹的前序、中序和后序遍歷。
7.順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。
二、程序設(shè)計基礎(chǔ)
1.程序設(shè)計方法與風(fēng)格
2.結(jié)構(gòu)化程序設(shè)計。
3.面向?qū)ο蟮某绦蛟O(shè)計方法,對象,方法,屬性及繼承與多態(tài)性。
三、軟件工程基礎(chǔ)
1.軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境。
2.結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書。
3.結(jié)構(gòu)化設(shè)計方法,總體設(shè)計與詳細(xì)設(shè)計。
4.軟件測試的方法,白盒測試與黑盒測試,測試用例設(shè)計,軟件測試的實施,單元測試、集成測試和系統(tǒng)測試。
5.程序的調(diào)試,靜態(tài)調(diào)試與動態(tài)調(diào)試。
四、數(shù)據(jù)庫設(shè)計基礎(chǔ)
1.數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)。
2.數(shù)據(jù)模型,實體聯(lián)系模型及E―R圖,從E―R圖導(dǎo)出關(guān)系數(shù)據(jù)模型。
3.關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、連接運(yùn)算,數(shù)據(jù)庫規(guī)范化理 論。
4.數(shù)據(jù)庫設(shè)計方法和步驟:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計的相關(guān)策略。
考試方式
1.公共基礎(chǔ)知識的考試方式為筆試,與C語言程序設(shè)計(C++語言程序設(shè)計、Java語言程序設(shè)計、Visual Basic語言程序設(shè)計、Visual FoxPro數(shù)據(jù)庫程序設(shè)計或Access數(shù)據(jù)庫程序設(shè)計)的筆試部分合為一張試卷,公共基礎(chǔ)知識部分占全卷的30分。
2.公共基礎(chǔ)知識有l(wèi)0道選擇題和5道填
1、算法問題處理方案的正確而完整的描述稱為【算法】。
算法分析的目的是,分析算法的效率以求改進(jìn)。算法的基本特征是【可行性】、【確定性】、【有窮性】和擁有足夠情報。
算法的有窮性是指:算法程序的運(yùn)行時間是有限的。算法的復(fù)雜度是衡量算法好壞的度量,分為【時間復(fù)雜度】和【空間復(fù)雜度】。
時間復(fù)雜度是指執(zhí)行算法所需要的【計算工作量】;算法的空間復(fù)雜度是指算法執(zhí)行過程中所需的【存儲空間】。算法時間復(fù)雜度或空間復(fù)雜度中的一項的值,沒有辦法推出另一項的值。
2、數(shù)據(jù)結(jié)構(gòu)索引屬于存儲結(jié)構(gòu)(物理結(jié)構(gòu))。循環(huán)隊列屬于【存儲結(jié)構(gòu)】。
數(shù)據(jù)的存儲結(jié)構(gòu)又稱為物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式。一個邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率。
程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于【線性結(jié)構(gòu)】。
線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈?zhǔn)酱鎯Φ拇鎯臻g不一定是連續(xù)的。
有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊列是一種特殊的線性表,循環(huán)隊列按照【先進(jìn)先出】原則組織數(shù)據(jù)。
循環(huán)隊列是隊列的【順序】存儲結(jié)構(gòu)。數(shù)據(jù)的獨(dú)立性分為【物理獨(dú)立】性和【邏輯獨(dú)立性】。
當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序可以不用修改,稱為【物理獨(dú)立性】。3、棧和隊列棧是一種特殊的線性表,是只能在一端進(jìn)行插入和刪除的線性表,特點(diǎn)是先進(jìn)后出棧是【先進(jìn)后出】的線性表;棧具有記憶作用;對棧的插入與刪除操作中,不需要改變【棧底指針】。
假定讓元素1、2、3、A、B依次入棧,則出棧的順序是:B、A、3、2、1。棧與隊列都是線性結(jié)構(gòu),樹是非線性結(jié)構(gòu)。
支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是【?!俊Ec隊列的共同點(diǎn)是,都只允許在【端點(diǎn)處】插入和刪除元素。
棧只能順序存儲的描述是錯誤的。棧可以有【順序和鏈?zhǔn)健績煞N存儲方式。
隊列是允許在一段插入,在另一端進(jìn)行刪除的線性表,其特點(diǎn)是【先進(jìn)先出】。循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定。
循環(huán)隊列的頭指針為front,尾指針為rear,容量為maxSize,則循環(huán)隊列中元素的個數(shù)是【 (rear-front+maxSize) mod maxSize】。4、線性鏈表線性鏈表是線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)。
用鏈表表示線性表的優(yōu)點(diǎn)是【便于插入和刪除操作】。線性鏈表的存儲空間不一定連續(xù),且個元素的存儲順序是任意的。
5、樹與二叉樹在樹結(jié)構(gòu)中,一個結(jié)點(diǎn)所擁有的后件(繼)的個數(shù)稱為該結(jié)點(diǎn)的度,所有結(jié)點(diǎn)中最大的度稱為樹的度。二叉樹各結(jié)點(diǎn)的度只可能取值0、1、2,不可能是其它值。
換言之,知道了度為1結(jié)點(diǎn)數(shù)量的前提下,葉子結(jié)點(diǎn)或度為2的結(jié)點(diǎn)中知道其一,就可以求出總的結(jié)點(diǎn)數(shù)。上述的計算公式,關(guān)鍵要能夠應(yīng)用,例如,深度為7的滿二叉樹,度為2的結(jié)點(diǎn)數(shù)量是多少?既然是滿二叉樹,葉子結(jié)點(diǎn)的數(shù)量就是第7層的結(jié)點(diǎn)數(shù)量,也就是26,可以算出葉子結(jié)點(diǎn)為64,因此度為2的結(jié)點(diǎn)數(shù)是63(葉子結(jié)點(diǎn)數(shù)減去1)。
二叉樹的前序遍歷、中序遍歷、后續(xù)遍歷:前中后三個詞是相對于根來講的,前序是【根-->左-->右】,中序是【左-->根-->右】,后續(xù)是【左-->右-->根】。具體操作為:先序遍歷(D L R): 訪問根結(jié)點(diǎn),按先序遍歷左子樹,按先序遍歷右子樹。
中序遍歷(L D R): 按中序遍歷左子樹,訪問根結(jié)點(diǎn),按中序遍歷右子樹。后序遍歷(L R D): 按后序遍歷左子樹,按后序遍歷右子樹,訪問根結(jié)點(diǎn)。
下面以中序遍歷為例,來講解實際的解題方法:對一棵樹,將根結(jié)點(diǎn)下的左子樹用一個橢圓圈起來,右子樹也用一個橢圓圈起來。之后,在左子樹上標(biāo)記上1,在根結(jié)點(diǎn)標(biāo)記上2,在右子樹上標(biāo)記上3。
對在左邊橢圓內(nèi)的左子樹,現(xiàn)在把它單獨(dú)拿出來分析。把它的左子樹圈起來標(biāo)上1.1,根結(jié)點(diǎn)標(biāo)記上1.2,右子樹標(biāo)上1.3。
按照上述方法依次往下,直到樹不能拆分,然后按照“左-->根--->右”的順序?qū)懗鼋Y(jié)點(diǎn)的訪問先后即可。6、查找技術(shù)對于長度為n的線性表,順序查找最壞情況下需要比較n次。
(對數(shù)據(jù)是否有序沒有要求)?!?順序查找最好情況下查詢次數(shù)是1,最壞情況下是n,平均為(1+n)/2。
對于長度為n的有序線性表,二分法最壞情況下只需要比較log2n次。(數(shù)據(jù)必須有序)能用二分法進(jìn)行查找的是【順序存儲的有序線性表】。
7、排序技術(shù)對于長度為n的線性表,【冒泡排序、快速排序、簡單插入排序、簡單選擇排序】這四種排序方式在最壞情況下的比較次數(shù)相同,都是【n(n-1)/2】。堆排序的效率最高,是【nlog2n】。
★★ 希爾排序最壞情況下需要次比較【n1.5】。希爾排序?qū)儆凇静迦腩惻判蚍ā俊?/p>
已知數(shù)據(jù)表A中每個元素距最終位置不遠(yuǎn),為節(jié)省時間,應(yīng)該采用的算法是【直接插入排序】。選擇排序、插入排序、快速排序、歸并排序中對內(nèi)存要求最大的是【歸并排序】。
第二部分 軟件工程基礎(chǔ) 1、軟件工程基本概念軟件是包括【程序】、【數(shù)據(jù)】及【相關(guān)文檔】的完整集合,軟件是一種邏輯產(chǎn)品。軟件工程三要素包括【方法、工具。
去百度文庫,查看完整內(nèi)容> 內(nèi)容來自用戶:梅悠心理 復(fù)習(xí)及應(yīng)試建議:1.考生的復(fù)習(xí)必須遵守:“80/20的原則”二級考試的公共知識部分的覆蓋面廣,至少涵蓋了計算機(jī)應(yīng)用專業(yè)的四門核心課程:算法及數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計基礎(chǔ)、軟件工程基礎(chǔ)和數(shù)據(jù)庫。
事實上,這些課程本身的涉及面就很廣,難度系數(shù)較大。因此,這些課程甚至也是計算機(jī)專業(yè)學(xué)生最頭疼的課程,對大多數(shù)考生來說其難度之大不言而喻。
所以,考生應(yīng)把80%的時間用在20%的重點(diǎn)知識點(diǎn)上,爭取用20%的重點(diǎn)知識點(diǎn)來答對80%的考題,這是考生復(fù)習(xí)二級考試的公共知識部分的總體思路。2.復(fù)習(xí)的關(guān)鍵是考生必須準(zhǔn)確判斷和掌握常見考點(diǎn)考生必須能夠準(zhǔn)確判斷和掌握常見考點(diǎn),例如:算法部分主要考查算法的概念及算法的復(fù)雜度;數(shù)據(jù)結(jié)構(gòu)部分主要考查最基本的概念、最典型的數(shù)據(jù)結(jié)構(gòu)和最常見的操作;程序設(shè)計部分主要考查程序設(shè)計風(fēng)格的基本要求、結(jié)構(gòu)化程序設(shè)計的最基本知識和面向?qū)ο蟪绦蛟O(shè)計的最常見概念;軟件工程基礎(chǔ)部分主要考查軟件工程的基本概念及軟件生命周期的各個階段的基礎(chǔ)知識;數(shù)據(jù)庫基礎(chǔ)部分主要考查數(shù)據(jù)庫基本概念、數(shù)據(jù)模型、關(guān)系代數(shù)基礎(chǔ)知識、數(shù)據(jù)庫設(shè)計方法和步驟。
對常見考點(diǎn)的準(zhǔn)確把握會使考生避免盲目學(xué)習(xí),從而能夠輕松面對考試。二級考試中要求的知識點(diǎn)都是最基本的、最簡單的,真正需要數(shù)據(jù)的存儲結(jié)構(gòu)有順序、鏈接、索引等。
其允許插入與刪除的一端稱為棧頂,用指針(2)例1.82.3消息的組成包括:(①軟件設(shè)計的基本原理是:(動態(tài)測試:是基本計算。
二級公共基礎(chǔ)知識(填空題40道)(1) 算法的復(fù)雜度主要包括______復(fù)雜度和空間復(fù)雜度。
時間(2) 數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的______。(3) 若按功能劃分,軟件測試的方法通常分為白盒測試方法和______測試方法。
答:黑盒(4) 如果一個工人可管理多個設(shè)施,而一個設(shè)施只被一個工人管理,則實體"工人"與實體"設(shè)備"之間存在______聯(lián)系。答:一對多#1:n#1:n(5) 關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運(yùn)算包括選擇、連接和______。
答:投影(6) 在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、______遍歷和后序遍歷。答:中序(7) 結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。
答:模塊化(8) 軟件的調(diào)試方法主要有:強(qiáng)行排錯法、______和原因排除法。答:回溯法(9) 數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。
答:概念#概念級(10) 數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。答:數(shù)據(jù)存儲(11) 設(shè)一棵完全二叉樹共有500個結(jié)點(diǎn),則在該二叉樹中有______個葉子結(jié)點(diǎn)。
答:250(12) 在最壞情況下,冒泡排序的時間復(fù)雜度為______。答:n(n-1)/2#n*(n-1)/2#o(n(n-1)/2)#o(n*(n-1)/2)(13) 面向?qū)ο蟮某绦蛟O(shè)計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個______。
答:實體(14) 軟件的需求分析階段的工作,可以概括為四個方面:______、需求分析、編寫需求規(guī)格說明書和需求評審。答:需求獲取(15) ______是數(shù)據(jù)庫應(yīng)用的核心。
答:數(shù)據(jù)庫設(shè)計(16) 數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的______結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。答:邏輯(17) 軟件工程研究的內(nèi)容主要包括:______技術(shù)和軟件工程管理。
答:軟件開發(fā)(18) 與結(jié)構(gòu)化需求分析方法相對應(yīng)的是______方法。答:結(jié)構(gòu)化設(shè)計(19) 關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
答:參照完整性(20) 數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。答:概念(21) 棧的基本運(yùn)算有三種:入棧、退棧和______。
答:讀棧頂元素#讀棧頂?shù)脑?讀出棧頂元素(22) 在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實現(xiàn)的。答:封裝(23) 數(shù)據(jù)流的類型有______和事務(wù)型。
答:變換型(24) 數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為______。答:數(shù)據(jù)庫管理系統(tǒng)#dbms(25) 關(guān)系模型的數(shù)據(jù)cao縱即是建立在關(guān)系上的數(shù)據(jù)cao縱,一般有______、增加、刪除和修改四種cao作。
答:查詢(26) 實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的 ______。答:空間復(fù)雜度和時間復(fù)雜度(27) 數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的 ______以及對數(shù)據(jù)的cao作運(yùn)算。
答:存儲結(jié)構(gòu)(28) 一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的______。
答可重用性(29) 面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛?______。答:類(30) 軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、______維護(hù)和預(yù)防性維護(hù)。
答:完善性(31) 算法的基本特征是可行性、確定性、______和擁有足夠的情報。答:有窮性(32) 順序存儲方法是把邏輯上相鄰的結(jié)點(diǎn)存儲在物理位置______的存儲單元中。
答:相鄰(33) jackson結(jié)構(gòu)化程序設(shè)計方法是英國的m.jackson提出的,它是一種面向______的設(shè)計方法。答:數(shù)據(jù)結(jié)構(gòu)(34) 數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實施階段、運(yùn)行和維護(hù)階段。
答:概念設(shè)計階段#數(shù)據(jù)庫概念設(shè)計階段(35) 數(shù)據(jù)庫保護(hù)分為:安全性控制 、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。答:完整性控制(36) 測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
答:調(diào)試(37) 在最壞情況下,堆排序需要比較的次數(shù)為______。答:o(nlog2n)(38) 若串s="program",則其子串的數(shù)目是______。
答:29(39) 一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體"項目主管"與實體"項目"的聯(lián)系屬于______的聯(lián)系。答:1對多#1:n(40) 數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和______三種。
答:關(guān)系模型。
計算機(jī)二級公共基礎(chǔ)知識是計算機(jī)中綜合性知識,占30分。
包含的科目有數(shù)據(jù)結(jié)構(gòu),軟件工程,算法設(shè)計與分析,數(shù)據(jù)庫設(shè)計等。而這些科目都屬于計算機(jī)專業(yè)必修課,也是一個程序員的必備理論基礎(chǔ)。
我們知道二級的目標(biāo)定位就是程序員的水平,所以這些科目都是必考內(nèi)容。 那么如何備考呢?實際上很簡單,只要買一本教育部考試中心出版的計算機(jī)二級考試公共基礎(chǔ)知識大綱級指導(dǎo)書(一定是教育部出版發(fā)行的那種),回來抽個時間仔細(xì)研讀一番就可以了,而且無須做大量練習(xí)題,因為二級要求不高,停留在概念的階段。
復(fù)習(xí)時,不要將其看的太重,因為大家的水平都差不多,除非計算機(jī)專業(yè)的。 ========================================== 全國計算機(jī)等級考試二級公共基礎(chǔ)知識考試大綱 基本要求 1。
掌握算法的基本概念。 2。
掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。 3。
掌握基本排序和查找算法。 4。
掌握逐步求精的結(jié)構(gòu)化程序設(shè)計方法。 5。
掌握軟件工程的基本方法,具有初步應(yīng)用相關(guān)技術(shù)進(jìn)行軟件開發(fā)的能力。 6。
掌握數(shù)據(jù)的基本知識,了解關(guān)系數(shù)據(jù)庫的設(shè)計。 考試內(nèi)容 一、基本數(shù)據(jù)結(jié)構(gòu)與算法 1。
算法的基本概念;算法復(fù)雜度的概念和意義(時間復(fù)雜度與空間復(fù)雜度)。 2。
數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。 3。
線性表的定義;線性表的順序存儲結(jié)構(gòu)及其插入與刪除運(yùn)算。 4。
棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運(yùn)算。 5。
線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。 6。
樹的基本概念;二叉樹的定義及其存儲結(jié)構(gòu);二叉樹的前序、中序和后序遍歷。 7。
順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。 二、程序設(shè)計基礎(chǔ) 1。
程序設(shè)計方法與風(fēng)格。 2。
結(jié)構(gòu)化程序設(shè)計。 3。
面向?qū)ο蟮某绦蛟O(shè)計方法,對象,方法,屬性及繼承與多態(tài)性。 三、軟件工程基礎(chǔ) 1。
軟件工程基本概念,軟件生命周戎概念,軟件工具與軟件開發(fā)環(huán)境。 2。
結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書。 3。
結(jié)構(gòu)化設(shè)計方法,總體設(shè)計與詳細(xì)設(shè)計。 4。
軟件測試的方法,白盒測試與黑盒測試,測試用例設(shè)計,軟件測試的實施,單元測試、集成測試和系統(tǒng)測試。 5。
程序的調(diào)試,靜態(tài)調(diào)試與動態(tài)調(diào)試。 四、數(shù)據(jù)庫設(shè)計基礎(chǔ) 1。
數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)。 2。
數(shù)據(jù)模型,實體聯(lián)系模型及E-R圖,從E-R圖導(dǎo)出關(guān)系數(shù)據(jù)模型。 3。
關(guān)系代數(shù)運(yùn)算,包括集合運(yùn)算及選擇、投影、連接運(yùn)算,數(shù)據(jù)庫規(guī)范化理論。 4。
數(shù)據(jù)庫設(shè)計方法和步驟:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計的相關(guān)策略。 。
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.368秒