為了方便計(jì)算機(jī)等級試,特意整理出來的。
第一章 數(shù)據(jù)結(jié)構(gòu)與算法 1 算法是解題方案的準(zhǔn)確而完整的描述,它不等于程序,也不等于計(jì)算方法。 基本特征:可行性、確定性、有窮性、擁有足夠的情報(bào)。
2 算法復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。 時(shí)間復(fù)雜度:用來衡量算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。
空間復(fù)雜度:用來衡量算法執(zhí)行過程中所需要的存儲(chǔ)空間。 3 數(shù)據(jù)結(jié)構(gòu)研究的主要內(nèi)容: (1)數(shù)據(jù)的邏輯結(jié)構(gòu) (2)數(shù)據(jù)的存儲(chǔ)結(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ù)的存儲(chǔ)結(jié)構(gòu)是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間的存放形式。
同一種邏輯結(jié)構(gòu)可以采用不同存儲(chǔ)結(jié)構(gòu),但影響數(shù)據(jù)處理效率。 7 數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu) 常見線性結(jié)構(gòu):線性表、棧、隊(duì)列、線性鏈表 常用非線性結(jié)構(gòu):樹、二叉樹、圖 8 線性表示由n(n>=0)個(gè)相同類型的數(shù)據(jù)元素構(gòu)成的有限序列。
結(jié)構(gòu)特征: (1)數(shù)據(jù)元素在表中的位置由序號決定,數(shù)據(jù)元素之間的相對位置是線性的 (2)對于一個(gè)非空線性表,有且只有一個(gè)根節(jié)點(diǎn)a1,它無前件,有且只有一個(gè)終端結(jié)點(diǎn)an,它無后件,除根結(jié)點(diǎn)與終端結(jié)點(diǎn)外,其他所有結(jié)點(diǎn)有且只有一個(gè)前件,也有且只有一個(gè)后件。 基本存儲(chǔ)結(jié)構(gòu): (1)順序存儲(chǔ) (2)鏈?zhǔn)酱鎯?chǔ) 9 順序表的插入運(yùn)算時(shí)需要移動(dòng)元素,在等概率情況下,平均需要移動(dòng) n/2 個(gè)元素。
10 進(jìn)行順序表的刪除運(yùn)算時(shí)也需要移動(dòng)元素,在等概率情況下,平均移動(dòng)(n-1)/2 個(gè)元素。 11 棧只能在棧頂插入或刪除元素,是一種先進(jìn)后出FILO(或稱為后入先出LIFO)的線性表。
12 隊(duì)列是只能從隊(duì)尾插入元素,在隊(duì)頭刪除元素,是一種先進(jìn)先出FIFO(或后入后出LILO)的線性表。 13 線性鏈表不能隨機(jī)存取。
14 在線性鏈表中插入元素時(shí),不需要移動(dòng)數(shù)據(jù)元素,只需要修改相關(guān)結(jié)點(diǎn)指針即可,也不會(huì)出現(xiàn)“上溢”現(xiàn)象。 15 在線性鏈表中刪除元素時(shí),也不需要移動(dòng)數(shù)據(jù)元素,只需要修改相關(guān)結(jié)點(diǎn)指針即可。
16 循環(huán)鏈表實(shí)單鏈表基礎(chǔ)上增加了一個(gè)表頭結(jié)點(diǎn),其插入和刪除運(yùn)算與單鏈表相同,可以從任意結(jié)點(diǎn)出發(fā)來訪問表中其他所有結(jié)點(diǎn),并實(shí)現(xiàn)空表與非空表的運(yùn)算。 17 一般二叉樹通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),對于滿二叉樹與完全二叉樹來說,可以按層序進(jìn)行順序存儲(chǔ)。
18 二分查找知識(shí)用于順序存儲(chǔ)的線性表,對于無序線性表和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只能用順序查找。 19 冒泡排序是每一趟都會(huì)把較小的元素先前移動(dòng),最壞比較次數(shù)是 n(n-1)/2 。
20 簡單插入排序法是將無序序列中的各元素依次插入到已經(jīng)有序的線性表中,最壞比較次數(shù)為 n(n-1)/2。 21 希爾排序法的基本思想:將無序序列劃分成若干個(gè)子序列(又相隔某個(gè)增量h的元素組成)分別進(jìn)行直接插入排序,待整個(gè)序列中的元素基本有序(增量足夠?。r(shí),在對全體元素進(jìn)行一次直接插入排序。
因?yàn)橹苯硬迦肱判蛟谠鼗居行虻那闆r下(接近最好情況),效率是很高的。 22 選擇排序每一趟都是找出無序序列中的最小一個(gè)元素,最壞比較次數(shù)為 n(n-1)/2。
23 排序技術(shù): (1)交換排序法:冒泡排序、快速排序 (2)插入排序法:簡單插入排序法、希爾排序 (3)選擇排序法:簡單選擇排序法、堆排序法。
一、基本數(shù)據(jù)結(jié)構(gòu)與算法
1.算法的基本概念;算法復(fù)雜度的概念和意義(時(shí)間復(fù)雜度與空間復(fù)雜度)。
2.數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。
3.線性表的定義;線性表的順序存儲(chǔ)結(jié)構(gòu)及其插入與刪除運(yùn)算。
4.棧和隊(duì)列的定義;棧和隊(duì)列的順序存儲(chǔ)結(jié)構(gòu)及其基本運(yùn)算。
5.線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。
6.樹的基本概念;二叉樹的定義及其存儲(chǔ)結(jié)構(gòu);二叉樹的前序、中序和后序遍歷。
7.順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。
二、程序設(shè)計(jì)基礎(chǔ)
1.程序設(shè)計(jì)方法與風(fēng)格。
2.結(jié)構(gòu)化程序設(shè)計(jì)。
3.面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對象,方法,屬性及繼承與多態(tài)性。
三、軟件工程基礎(chǔ)
1.軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境。
2.結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書。
3.結(jié)構(gòu)化設(shè)計(jì)方法,總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)。
4.軟件測試的方法,白盒測試與黑盒測試,測試用例設(shè)計(jì),軟件測試的實(shí)施,單元測試、集成測試和系統(tǒng)測試。
5.程序的調(diào)試,靜態(tài)調(diào)試與動(dòng)態(tài)調(diào)試。
四、數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)
1.數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)。
2.數(shù)據(jù)模型,實(shí)體聯(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è)計(jì)方法和步驟:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)的相關(guān)策略。
這些你可以到未來教育網(wǎng)上詳細(xì)看看!
計(jì)算機(jī)二級公共基礎(chǔ)知識(shí)總結(jié)
數(shù)據(jù)結(jié)構(gòu)與算法
1.1 算法
算法:是指解題方案的準(zhǔn)確而完整的描述。
算法不等于程序,也不等計(jì)算機(jī)方法,程序的編制不可能優(yōu)于算法的設(shè)計(jì)。
算法的基本特征:是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,每一個(gè)規(guī)則都是有效的,是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。特征包括:
(1)可行性;
(2)確定性,算法中每一步驟都必須有明確定義,不充許有模棱兩可的解釋,不允許有多義性;
(3)有窮性,算法必須能在有限的時(shí)間內(nèi)做完,即能在執(zhí)行有限個(gè)步驟后終止,包括合理的執(zhí)行時(shí)間的含義;
(4)擁有足夠的情報(bào)。
算法的基本要素:一是對數(shù)據(jù)對象的運(yùn)算和操作;二是算法的控制結(jié)構(gòu)。
指令系統(tǒng):一個(gè)計(jì)算機(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è)計(jì)方法:列舉法、歸納法、遞推、遞歸、減斗遞推技術(shù)、回溯法。
算法復(fù)雜度:算法時(shí)間復(fù)雜度和算法空間復(fù)雜度。
算法時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。
算法空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
1.2 數(shù)據(jù)結(jié)構(gòu)的基本基本概念
數(shù)據(jù)結(jié)構(gòu)研究的三個(gè)方面:
(1)數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);
(2)在對數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即數(shù)據(jù)的存儲(chǔ)結(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ù)的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等。等等
【【上 學(xué) 吧】】 有詳細(xì)的資料 自己去看看
1、算法問題處理方案的正確而完整的描述稱為【算法】。
算法分析的目的是,分析算法的效率以求改進(jìn)。算法的基本特征是【可行性】、【確定性】、【有窮性】和擁有足夠情報(bào)。
算法的有窮性是指:算法程序的運(yùn)行時(shí)間是有限的。算法的復(fù)雜度是衡量算法好壞的度量,分為【時(shí)間復(fù)雜度】和【空間復(fù)雜度】。
時(shí)間復(fù)雜度是指執(zhí)行算法所需要的【計(jì)算工作量】;算法的空間復(fù)雜度是指算法執(zhí)行過程中所需的【存儲(chǔ)空間】。算法時(shí)間復(fù)雜度或空間復(fù)雜度中的一項(xiàng)的值,沒有辦法推出另一項(xiàng)的值。
2、數(shù)據(jù)結(jié)構(gòu)索引屬于存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))。循環(huán)隊(duì)列屬于【存儲(chǔ)結(jié)構(gòu)】。
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)又稱為物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。一個(gè)邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率。
程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)。數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于【線性結(jié)構(gòu)】。
線性表的存儲(chǔ)結(jié)構(gòu)主要分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)的存儲(chǔ)空間不一定是連續(xù)的。
有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列按照【先進(jìn)先出】原則組織數(shù)據(jù)。
循環(huán)隊(duì)列是隊(duì)列的【順序】存儲(chǔ)結(jié)構(gòu)。數(shù)據(jù)的獨(dú)立性分為【物理獨(dú)立】性和【邏輯獨(dú)立性】。
當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序可以不用修改,稱為【物理獨(dú)立性】。3、棧和隊(duì)列棧是一種特殊的線性表,是只能在一端進(jìn)行插入和刪除的線性表,特點(diǎn)是先進(jìn)后出棧是【先進(jìn)后出】的線性表;棧具有記憶作用;對棧的插入與刪除操作中,不需要改變【棧底指針】。
假定讓元素1、2、3、A、B依次入棧,則出棧的順序是:B、A、3、2、1。棧與隊(duì)列都是線性結(jié)構(gòu),樹是非線性結(jié)構(gòu)。
支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是【棧】。棧與隊(duì)列的共同點(diǎn)是,都只允許在【端點(diǎn)處】插入和刪除元素。
棧只能順序存儲(chǔ)的描述是錯(cuò)誤的。??梢杂小卷樞蚝玩?zhǔn)健績煞N存儲(chǔ)方式。
隊(duì)列是允許在一段插入,在另一端進(jìn)行刪除的線性表,其特點(diǎn)是【先進(jìn)先出】。循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定。
循環(huán)隊(duì)列的頭指針為front,尾指針為rear,容量為maxSize,則循環(huán)隊(duì)列中元素的個(gè)數(shù)是【 (rear-front+maxSize) mod maxSize】。4、線性鏈表線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
用鏈表表示線性表的優(yōu)點(diǎn)是【便于插入和刪除操作】。線性鏈表的存儲(chǔ)空間不一定連續(xù),且個(gè)元素的存儲(chǔ)順序是任意的。
5、樹與二叉樹在樹結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件(繼)的個(gè)數(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ù)。上述的計(jì)算公式,關(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ù)遍歷:前中后三個(gè)詞是相對于根來講的,前序是【根-->左-->右】,中序是【左-->根-->右】,后續(xù)是【左-->右-->根】。具體操作為:先序遍歷(D L R): 訪問根結(jié)點(diǎn),按先序遍歷左子樹,按先序遍歷右子樹。
中序遍歷(L D R): 按中序遍歷左子樹,訪問根結(jié)點(diǎn),按中序遍歷右子樹。后序遍歷(L R D): 按后序遍歷左子樹,按后序遍歷右子樹,訪問根結(jié)點(diǎn)。
下面以中序遍歷為例,來講解實(shí)際的解題方法:對一棵樹,將根結(jié)點(diǎn)下的左子樹用一個(gè)橢圓圈起來,右子樹也用一個(gè)橢圓圈起來。之后,在左子樹上標(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)行查找的是【順序存儲(chǔ)的有序線性表】。
7、排序技術(shù)對于長度為n的線性表,【冒泡排序、快速排序、簡單插入排序、簡單選擇排序】這四種排序方式在最壞情況下的比較次數(shù)相同,都是【n(n-1)/2】。堆排序的效率最高,是【nlog2n】。
★★ 希爾排序最壞情況下需要次比較【n1.5】。希爾排序?qū)儆凇静迦腩惻判蚍ā俊?/p>
已知數(shù)據(jù)表A中每個(gè)元素距最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)該采用的算法是【直接插入排序】。選擇排序、插入排序、快速排序、歸并排序中對內(nèi)存要求最大的是【歸并排序】。
第二部分 軟件工程基礎(chǔ) 1、軟件工程基本概念軟件是包括【程序】、【數(shù)據(jù)】及【相關(guān)文檔】的完整集合,軟件是一種邏輯產(chǎn)品。軟件工程三要素包括【方法、工具。
計(jì)算機(jī)等級考試二級必須考公共基礎(chǔ)知識(shí),計(jì)算機(jī)二級考核計(jì)算機(jī)基礎(chǔ)知識(shí)和使用一種高級計(jì)算機(jī)語言編寫程序以及上機(jī)調(diào)試的基本技能。
考試科目:語言程序設(shè)計(jì)(C、C++、Java、VisualBasic、WEB)、數(shù)據(jù)庫程序設(shè)計(jì)(VisualFoxPro、Access、MySQL)、辦公軟件(MSOffice高級應(yīng)用)共九個(gè)科目。新增"MySQL數(shù)據(jù)庫程序設(shè)計(jì)"、"WEB程序設(shè)計(jì)"、"MSOffice高級應(yīng)用"三個(gè)科目。二級Delphi科目將從2013年上半年開始???,不再接受新考生報(bào)名,該次只接受補(bǔ)考考生報(bào)名,從第38次全國計(jì)算機(jī)等級考試(2013年9月)起,不再開考。
考試形式:完全采取上機(jī)考試形式,各科上機(jī)考試時(shí)間均為120分鐘,滿分100分??偡诌_(dá)到60分,可以獲得合格證書,沒有獲得合格證書的考生,不再安排補(bǔ)考,需以新考生身份報(bào)名參加考試。參加2013年3月全國計(jì)算機(jī)等級考試二級7個(gè)科目補(bǔ)考的老考生,仍按照傳統(tǒng)模式參加補(bǔ)考。
獲證條件:通過二級科目考試。
考核內(nèi)容:二級定位為程序員,考核內(nèi)容包括公共基礎(chǔ)知識(shí)和程序設(shè)計(jì)。所有科目對基礎(chǔ)知識(shí)作統(tǒng)一要求,使用統(tǒng)一的公共基礎(chǔ)知識(shí)考試大綱和教程。二級公共基礎(chǔ)知識(shí)在各科考試選擇題中體現(xiàn)。程序設(shè)計(jì)部分,主要考查考生對程序設(shè)計(jì)語言使用和編程調(diào)試等基本能力,在選擇題和操作題中加以體現(xiàn)。
題型及分值比例:①選擇題40題,40%;②程序設(shè)計(jì)題3題,60%。
上機(jī)考試環(huán)境及使用的軟件:全國計(jì)算機(jī)等級考試二級上機(jī)考試環(huán)境為Windows7簡體中文版。各科目使用的軟件如下:
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:3.767秒