❶ 計算機的特點有穩定性嗎
計算機的特點有穩定性,可將其歸結為可靠性。計算機對於不同的問題,只是執行的程序不同,因而具有很強的穩定性和通用性。計算機的其他特點:
(1)運算速度快:計算機內部電路組成,可以高速准確地完成各種算術運算。
(2)計算精確度高:科學技術的發展特別是尖端科學技術的發展,需要高度精確的計算。
(3)邏輯運算能力強:計算機不僅能進行精確計算,還具有邏輯運算功能,能對信息進行比較和判斷。
(4)存儲容量大:計算機內部的存儲器具有記憶特性,可以存儲大量的信息,這些信息,不僅包括各類數據信息,還包括加工這些數據的程序。
(5)自動化程度高:由於計算機具有存儲記憶能力和邏輯判斷能力,所以人們可以將預先編好的程序組納入計算機內存,在程序控制下,計算機可以連續、自動地工作,不需要人的干預。
(6)性價比高:幾乎每家每戶都會有電腦,越來越普遍化、大眾化,21世紀電腦必將成為每家每戶不可缺少的電器之一。計算機發展很迅速,有台式的還有筆記本。
發展趨勢:
隨著科技的進步,各種計算機技術、網路技術的飛速發展,計算機的發展已經進入了一個快速而又嶄新的時代,計算機已經從功能單一、體積較大發展到了功能復雜、體積微小、資源網路化等。計算機的未來充滿了變數,性能的大幅度提高是不可置疑的,而實現性能的飛躍卻有多種途徑。
不過性能的大幅提升並不是計算機發展的唯一路線,計算機的發展還應當變得越來越人性化,同時也要注重環保等等。
以上內容參考:網路-計算機
❷ 關於數據結構的題
一樓個別選擇題答案有疑問:
6.一個哈希函數被認為是「好的」,如果它滿足條件_________。
(A)哈希地址分布均勻
(B)保證不產生沖突
(C)所有哈希地址在表長范圍內
(D)滿足(B)和(C)
本題的答案有疑問,因為如果不知道關鍵碼值的全部集合根本就不可能設計出perfect的hash函數,當然就不可能保證不產生沖突,因此正常情況hash函數只要滿足A即可,也就是hash的意譯散列,一旦沖突了再來解決沖突,C則是必須滿足的隱含條件
8.平均查找長度最短的查找方法是_____________。
(A)折半查找 (B)順序查找 (C)哈希查找 (4)其他
答案為C,正常情況下就是有沖突,平均查找長度也不會大於4、5,如果是perfect 的hash函數,則ASL為1,而且與關鍵碼的個數不直接相關,至於A的平均查找長度為log2n,並不是最小的
❸ 數值計算中穩定性是一個重要概念,什麼是穩定性
對一個問題的求解可以有多種不同的方法,難易迥異。在計算機科學中往往把要解決的問題轉化為數學模型來加以解決。由於機器字長的限制和存貯空間
的有限性,不同的模型由於誤差的存在,往往使計算的結果存在很大的差異。若執行的結果與精確解之間的誤差很大的話,勢必會影響與之相關的數據的精確度。這
就引出了我們的問題:數值穩定性。
定義1對於一個已經存在的演算法,若輸入數據的誤差在計算過程中迅速增長而得不到控制,則稱該演算法是不穩定的,否則是數值穩定的。
❹ 數據結構的問題~
習題1
一、選擇題
1 計算機演算法必須具備輸入、輸出、()等5個特性。
A 可行性、可移植性和可擴展性 B 可行性、確定性和有窮性
C 確定性、有窮性和穩定性 D 易讀性、安全性和穩定性
2 在數據結構中,從邏輯上可以把數據結構分為( )
A 動態結構和靜態結構 B 緊湊結構和非緊湊結構
C 內容結構和外部結構 D 線性結構和非線性結構
3 下面程序段的時間復雜性的量級為( )
For (i=1;i<=n;i++)
For(j=1;j<=I;j++)
For(k=1;k<=j;k++)
x=x+1;
A O(1) B O(n) C O(n2) D O(n3)
4 在數據結構中,與所使用的計算機無關的是數據的( )結構
A 邏輯 B 存儲 C 邏輯和存儲 D 物理
5 數據結構在計算機中的表示是指( )
A 數據的邏輯結構 B 數據結構 C 數據的存儲結構 D 數據元素之間的關系
6 下面( )的時間復雜性最好,即執行時間最短。
A O(n) B O(logn) C O(nlogn) D O(n2)
7 下面程序段的時間復雜性的量級為( )。
Int fun(int n){
I=1,s=1;
While(s<n)
s+=++I;
return I;
}
A O(n/2) B O(logn) C O(n) D O(n1/2)
8 下面程序段的時間復雜性的量級為( )。
For(int i=0;i<m;i++)
For(int j=0;j<n;j++)
A[i][j]=i*j;
A O(m3) B O(n2) C O(m*n) D O(m+n)
9 執行下面程序段時,S 語句的執行次數為( )。
For(int i=1;i<n-1;i++)
For(int j=i+1;j<=n;j++)
S;
A n(n-1)/2 B n2/2 C n(n-1)/2 D n
二、簡答題
1 數據的邏輯結構有哪幾種?常用的存儲有哪幾種?
2 舉一個數據結構的例子,敘述其邏輯結構、存儲結構和運算三方面的內容。
3 什麼叫演算法?它有哪些特性
4 有下列幾種用二元組表示的數據結構,畫出它們分別對應的邏輯結構圖,並指出它們分別以屬於何種結構。
(1)A=(K,R),其中
K={a,b,c,d,e,f,g,h}
R={r}
r={<a,b>,<b,c>,<c,d>,<d,e>,<e,f>,<f,g>,<g,h>}
(2) B=(K,R),其中
K={a,b,c,d,e,f,g,h}
R={r}
r={<d,b>,<d,g>,<d,a>,<b,c>,<g,e>,<g,h>,<e,f>}
(3) B=(K,R),其中
K={1,2,3,4,5,6}
R={r}
r={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}
三、計算題
設n為整數,求下列各程序段的時間復雜度
(1)i=1;k=2;
While(i<n){
k=k+10*I;
i=i+1;
}
(2)i=1;j=0;
While(i+j<=n)
If(i>j)j=j+1;
Else i=i+1;
(3)x=91;y=100
While(y>0)
If(x>100){
x=x-10;
y=y-1;
}else x=x+1;
習題2
一、選擇題
1 線性表是( )
A 一個有限序列,可以為空 B 一個有限序列,不能為空
C 一個無限序列,可以為空 D 一個無限序列,不能為空
2 在一個長度為n的順序表中,向第iI個元素(1≤i≤n+1)位置插入一個新元素時,需要從後向前依次後移( )個元素。
A n-i B n-i+1 C n-i-1 D i
3 在一個順序表的表尾插入一個元素的時間復度的量級為( )。
A O(n) B O(1) C O(n2) D O(log n)
4 表長為n的順序存儲的線性表,當在任意位置上插入或刪除一個元素的概率相等時,插入一個元素所需移動元素的平均個數為( ),刪除一個元素需要移動元素的平均個數為( )
A (n-1)/2 B n C (n+1)/2 D n/2
5 設單鏈表中指針p指向結點a,若要刪除p之後的結點(若存在),則需修改指針的操作為( )。
A p->next=p->next->next B p=p->next
C p=p->next->next D next=p
6 單鏈表的存儲密度為( )。
A 大於1 B 等於5 C 小於1 D 不能確定
7 在一個單鏈表中,若要在p所指向的結點之後插入一個新結點,則需要相繼修改( )個指針域的值。
A 1 B 2 C 3 D 4
8 在一個單鏈表中,若要在p所指向的結點之前插入一個新結點,則此演算法的時間復雜度的量級為( )。
A O(n) B O(n/2) C O(1) D O(n1/2)
9 在一個帶頭結點的雙向循環鏈表中,若要在p所指向的結點之前插入一個新結點,則需要相繼修改( )個指針域的值。
A 2 B 3 C 4 D 6
二、簡答題
1 什麼叫線性表?它有哪些特點?
2 在鏈表的設計中,為什麼通常採用帶頭結點的鏈表結構?
3 對比順序表與單鏈表,說明順序表與單鏈表的主要優點和主要缺點。
4 試編寫演算法實現順序表的逆置,即把順序表A中的數據元素(a1,a2, …,an)逆置為(an,an-1, …,a1)。
5 已知A和B為兩個非遞減的線性表,現要求實現如下操作:從A中刪除在B中出現的元素。試編寫在順序表中實現上述操作的演算法。
6 試編寫演算法實現鏈表的就地逆置(不增加存儲空間),即把鏈表A中的數據元素(a1,a2, …,an)逆置為(an,an-1, …,a1)。
7 假設有兩個非遞減的線性表A 和B,均採用鏈式存儲結構,試編寫演算法將A和B 歸並成一個按元素非遞減的線性表C。
8 試編寫演算法求單循環鏈表的表長。
習題3
一、選擇題
1在棧頂一端可進行的全部操作是( )。
A 插入 B 刪除 C插入和刪除 D進棧
2 棧的特點是( )。
A 先進先出 B 後進先出 C後進後出 D不進不出
3 順序棧是空棧的條件是( )。
A top==0 B top==1 C top==-1 D top==m
4 假定利用數組A[N]順序存儲一個棧,top表示棧頂指針,已知棧未滿,則x入棧時所執行的操作是( )。
A a[--top]=x; B a[top--]=x C a[++top]=x D a[top++]=x
5 一個棧的入棧序列是a,b,c,d,e,則不可能的出棧序列是( )。
A edcda B dceab C decba D abcde
6 經過下列棧的運算後EmptyStack(s)的值是( )。
InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Pop(s,x) ;
A a B b C 1 D 0
7 若已知一個棧的入棧序列是1,2,3, …,n,其輸出序列為p1,p2,p3,…,pn,若p1=n,則pi為( )。
A i B n-i C n-i+1 D 不確定
8 隊列的特點是()。
A 先進先出 B 後進先出 C先進後出 D 不進不出
9 循環隊列S為滿的條件是()。
A S->rear==S->front
B S->rear+1)%maxsiae==s->front
C S->rear==0
D s->front==0
10 經過下列運算後GetHead(Q)的值是()。
InitQueue(Q); EnQueue(Q,a); EnQueue(Q,b); DeQueue(Q,x);
A a B b C 1 D 2
二、簡答題
1 簡述棧與隊列的相同點與不同點。
2 在順序隊列中,什麼叫真溢出?什麼叫假溢出?為什麼順序隊列常都採用循環隊列結構?
3 設以帶頭結點的循環鏈表表示隊列,並且只設一個指針指向隊尾元素結點(不設頭指針),試編寫相應的入隊列、出隊列演算法。
4 設計一個輸出如下形式數值的遞歸演算法。
4 4 4 4
3 3 3
2 2
1
5 編寫一個演算法,利用棧的基本運算返回指定棧中的棧底元素。
習題4
一、選擇題
1 串是一種特殊的線性表,其特殊性體現在( )
A 唯一可以順序存儲 B 數據元素是一個字元
C 可以鏈接存儲 D 數據元素可以是多個字元
2 下面( )是C語言中「abcd321ABCD」的子串。
A abcd B 321AB C 「abcAB」 D 「21AB」
3 設有兩個串p和q,求p和q首次出現的位置的運算稱作( )
A 連接 B 模式匹配 C 求子串 D 求串長
4 設有一個字元串S=「windows」,求子串的數目是()
A 25 B 26 C 27 D 28
二、簡答題
1 空串與空格串有什麼區別?字元串中的空格有什麼意思?空串在串的處理中有什麼作用?
2串是由字元組成的,長度為1的串和字元是否相同?為什麼?
3簡述串的靜態順序存儲結構與動態順序存儲結構有什麼區別,分別寫出它們的結構體定義。
4字元串採用靜態順序存儲結構。編寫一個演算法刪除S中地i個字元到第j個字元。
5編寫一個演算法判斷s2是否是s1的子串。
習題5
一、選擇題
1.二維數組A行下標i的范圍從1到12,列下標j的范圍從3到10,採用行序為主序存儲,每個數據元素佔用4個存儲單元,該數組的首地址(即A[1][3]的地址)為1200,則A[6][5]的地址為( )。
A 1400 B 1404 C 1372 D 1368
2.二維數組M的元素是4個字元(每個字元佔一個存儲單元)組成的串,行下標i的范圍從0到4,列下標j的范圍從0到5,M按行存儲時元素M[3][5]的起始地址與M按列存儲時元素( )的起始地址相同。
A M[2][4] B M[3][4] C M[3][5] D M [4][4]
3.數組A中,每個元素A的長度為3個位元組,行下標i從1到5,列下標j從1到6,從首地址開始連續存放在存儲器內,存放該數組至少需要的單元數是( )。
A 90 B 70 C 50 D 30
4.設有10階矩陣A,其對角線以上的元素aij均取值為-3,其他矩陣元素為正整數,現在將矩陣A壓縮存放在一維樹組F[m]中,則 m為( )。
A 45 B 46 C 55 D 56
5.若廣義表A滿足head(A)=tail(A),則A為( )。
A ( ) B (()) C ((),()) D ((),(),())
6.遞歸函數f(n)=f(n-1)+n(n>1)的遞歸出口是( )
A f(1)=0 B f(1)=1 C f(0)=1 D f(n)=n
二、簡答題
1.什麼叫二維數組的行序優先存儲?什麼叫二維數組的列序優先存儲?
2.什麼樣的矩陣叫特殊矩陣?特殊矩陣壓縮存儲的基本思想是什麼?
3.什麼樣的矩陣叫稀疏矩陣?稀疏矩陣壓縮存儲的基本思想是什麼?
三、計算題
設有二維數組A(6*8),每個元素佔4個位元組,A[0][0]的起始地址為1000,計算
(1) 數組A共佔多少個位元組;
(2) 數組的最後一個元素A[5][7]的起始地址;
(3) 按行優先存放時,元素A[1][4]的起始地址;
(4) 按列優先存放時,元素A[4[7]的起始地址;
四、設計題
1.對於二維數組A[m][n],其中m<=80,n<=80,先讀入m和n ,然後讀該數組的全部元素,對如下三種情況分別編寫相應函數:
(1)求數組A靠邊元素之和;
(2)求從A[0][0]開始的互不相鄰的各元素之和;
(3)當m=n時,分別求兩條對角線上的元素之和,否則列印出m!=n的信息。
2.有數組A[4][4],把1到16個整數分別按順序放入A[0][0],……,A[0][3],A[1][0],……,A[1][3],A[2][0],……,A[2][3],A[3][0],……,A[3][3]中,編寫一個函數獲得數據並求出兩條對角線元素的乘積。
習題6
一、選擇題
1、下述編碼中哪一個不是前綴編碼( )
A、{00,01,10,11} B、{01,0,1,10}
C、{0,10,110,111} D、{1,01,000,111}
2、一棵二叉樹第五層的結點數最多為( )
A、16 B、15 C、8 D、32
3、利用3、8、12、6這4個值作葉子結點的權,生成一棵哈夫曼樹,該樹的帶權路徑長度為( )
A、55 B、29 C、58 D、38
4、在線索化二叉樹中,t所指節點沒有左子樹的充要條件是( )
A、t->left=NULL B、t->ltag=1 C、t->ltag=1且t->left=NULL D、以上都不對
5、設高度為h的二叉數上只有度為0和度為2的結點,則此類二叉樹中所包含的結點數至少為( )
A、2h B、2h -1 C、2h +1 D、h+1
6、已知某二叉樹的後序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是( )
A、acbed B、 decab C、 deabc D 、cedba
7、按照二叉樹的定義,具有三個節點的二叉樹有( )種
A、3 B、4 C、5 D、6
8、任意一棵二叉樹的葉結點在先序、中序和後序遍歷序列中的相對次序( )
A、不發生改變 B、發生改變 C、不能確定 D、以上都不對
9、對一個滿二叉樹,它有m個樹葉,n個結點,深度為h,則()
A、n=h+m B 、h+m=2n C、m=h-1 D 、n=2h-1
二、設計題
1、已知一棵樹的邊的集合表示為{(L,N),(G,K),(G,1),(G,M),(B,E),(B,F),(D,G),(D,H),(D,I),(D,J),(A,B),(A,C),(A,D)}。畫出這棵樹並回答下面問題:
(1) 樹的根節點是哪個,哪些是葉子結點,哪些是非終端結點。
(2) 樹的深度是多少,各個結點的層數是多少。
(3) 對於G結點,它的雙親結點、祖先結點、孩子結點、子孫結點、兄弟和堂兄弟分別是哪些結點。
2、給定二叉樹的先序序列和中序序列,能否重構出該二叉樹?給定二叉樹的先序序列和後序序列呢?若不能,給出反例。
3、一棵深度為h的滿二叉樹具有如下性質:第h層上的結點都是葉結點,其餘各層上每個結點都有m棵非空子樹。若按層次從上到下,每層從左到右的順序從1開始對全部結點編號,試計算:
(1)第k層結點數(1<=k<=h)。
(2)整棵樹結點數
(3)編號為i的結點的雙親結點的編號
(4)編號為i的結點的第j個孩子結點(若有)的編號
4、若7個帶權結點,其權值分別為3,7,8,2,6,10,14,試以它們為葉結點構造一棵哈夫曼樹(請按照每個結點的左子樹根結點的權小於等於右子樹根結點的權的次序構造),度計算出帶權路徑長度WPL及該樹的結點總數。
5、假設二叉數採用鏈式存儲結構,編寫一個演算法釋放該二叉樹所佔用的全部結點。
6、編寫一個計算一棵二叉樹T的高度演算法。
7、二叉樹採用二叉樹鏈表的結構存儲,設計一個演算法求二叉樹中指定結點的層數。
習題7
一、選擇題
1、 在一個具有n個頂點的無向圖中,要連接全部頂點至少需要( )條邊。
A、n B、n+1 C、n-1 D、n/2
2、對於一個具有n個頂點的無向圖,若採用鄰接矩陣表示,則該矩陣的大小是( )
A、n B、(n-1)/2 C、n-1 D、n2
3、具有6個頂點的無向圖至少應用( )條邊才能確保是一個連通圖。
A、5 B、6 C、7 D、8
4、n個頂點的強連通圖的鄰接矩陣中至少有( )個非零元素。
A、n-1 B、n C、2n-2 D、2n
5、在一個具有n個頂點的有向完全圖中,所含的邊數為( )
A、n B、n(n-1) C、n(n-1)/2 D、n(n+1)/2
6、在一個具有n個頂點和e條邊的無向圖的鄰接矩陣中,表示邊存在的元素(又稱為有效元素)的個數為( )。
A、n B、ne C、e D、2e
7、在一個具有n個頂點和e條邊的有向圖的鄰接表中,保存頂點單鏈接的表頭指針向量大小至少為( )
A、n B、2n C、e D、2e
8、在一個具有n個頂點和e條邊的無向圖的鄰接表中,邊結點的個數為( )。
A、n B、ne C、e D、e
9、對於一個有向圖,若一個頂點的度為k1,出度為k2,則對應逆鄰接表中該頂點單鏈表中的邊結點數為( )
A、k1 B、k2 C、k1-k2 D、k1+k2
10、採用鄰接表存儲的圖的深度優先遍歷演算法類似於二叉樹的( )
A、接層遍歷 B、中序遍歷 C、先序遍歷 D、後序遍歷
11、無向圖G=(V,A),其中V={a,b,c,d,e}, A={<a,b>,<a,c>,<d,c>,<d,e>,<b,e>,<c,e>}
對該圖進行撲拓排序,下面序列中( )不是拓撲序列。
A、adcbe B、dabce C、abdce D、abcde
12、G是一個非連通無向圖,共有28條邊,則該圖至少有( )個頂點。
A、7 B、8 C、9 D、10
二、簡答題
1、 對於一個有向圖,不用拓撲排序,如何判定圖中是否存在環?
2、 用鄰接矩陣表示圖時,矩陣元素的個數與頂點個數是否相關?與邊數是否相關?
習題8
一、選擇題
1、 若查找每個記錄的概率均等,則在具有n個記錄的連續順序文件中採用順序查找法查找一個記錄,其平均查找長度ASL為( )
A、(n-1)/2 B、n/2 C、(n+1)/2 D、n
2、下面關於二分查找敘述正確的是( )
A、表必須有序,表可以順序方式存儲,也可以鏈表方式存儲
B、表必須有序且表中數據必須是整型,實型或字元型
C、表必須有序,而且只能從小到大排序
D、表必須有序,且表只能以順序方式存儲
3、當在一個有序的順序存儲表上查找一個數據時,既可用折半查找,也可用順序查找,但前者比後者的查找速度( )
A、必定快 B、不一定 C、在大部分情況下要快 D、取決於表遞增還是遞減
4、具有12個關鍵字的有序表,折半查找的平均查找長度為( )
A、3.1 B、4 C、2.5 D、5
5、當採用分塊查找時,數據的組織方式為( )
A、數據分成若干塊,每塊內數據有序
B、數據分成若干塊,每塊內數據不必有序,但塊間必須有序
C、數據分成若干塊,每塊內數據有序,每塊內最大(或最小)的數據組成索引塊
D、數據分成若干塊,每塊(除最後一塊外)中數據個數需相同
6、既希望查找速度快又便於線性表動態變化的查找方法有()
A、順序查找 B、折半查找 C、索引順序查找 D、哈希法查找
7、分別以下序列構造二叉排序樹,與用其他三個序列所構造的結果不同的是( )
A、(100,80,90,60,120,110,130) B、(100,120,110,130,80,60,90)
C、(100,60,80,90,120,110,130) D、(100,80,60,90,120,130,110)
二、簡答題
1、 什麼叫動態查找?什麼叫靜態查找?什麼樣的存儲結構適宜於進行靜態查找?什麼樣的存儲結構適宜於進行動態查找?
2、 什麼叫平均查找長度?寫出平均查找長度的定義
三、設計題
1、 已知一個個數為12的數據元素序列為{Dec,Feb,Nov,Oct,June,Sept,Aug,Apr,May,July,Jan,Mar},要求(注意字母的大小是指字母的ASCII碼數值大小):
(1) 按各數據元素的順序構造一棵二叉排序樹
(2) 設各數據元素的查找概率相等,給出該二叉排序樹的平均查找長度。
2、 設有數據元素序列{11,23,35,47,51,60,75,88,90,102,113,126},用除留余數法構造哈希表,要求:
(1) 設計哈希表的長度取值為m;
(2) 畫出用開放定址法的線性探查法解決哈希沖突的哈希表結構;
(3) 畫出用鏈表法解決哈希沖突的哈希表結構。
習題9
一、選擇題
1、設有1000個無序的元素,希望用最快的速度挑出其中前10個最大的元素,最好( )排序法。
A、起泡排序 B、選擇排序 C、堆排序 D、希爾排序
2、在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )
A、插入排序 B、選擇排序 C、快速排序 D、希爾排序
3、一組記錄排序碼為(46,79,56,38,40,84),則利用堆排序的方法建立的初始堆為( )
A、79,46,56,38,40,80 B、84,79,56,38,40,46
C、84,79,56,46,40,38 D、84,56,79,40,46,38
4、排序方法中,從未排序序列中依次取出元素與已排序序列(初始時為空)中的元素進行比較,將其放入已排序序列的正確位置上的方法,稱為( )
A、希爾排序 B、起泡排序 C、插入排序 D、選擇排序
5、下述幾種排序方法中,要求內存量最大的是( )
A、插入排序 B、選擇排序 C、快速排序 D、歸並排序
6、下列四種排序方法中,不穩定的方法是( )
A、直接插入排序 B、冒泡排序 C、歸並排序 D、直接選擇排序
二、設計題
1、對給定的j(1<=j<=n),要求在無序的記錄區R[1…n]中找到按關鍵字自小到大排在第j個位置上的記錄(即在無序集合中找到第j個最小元),試利用快速排序的劃分思想編寫演算法實現上述的查找操作。
2、以單鏈表為存儲結構,寫一個直接選擇排序演算法。
3、改寫快速排序演算法,要求採用三者取中的方式選擇劃分的基準記錄;若當前被排序的區間長度小於等於3時,無須劃分而是直接採用直接插入方式對其排序。
❺ 計算機演算法必須具備5個特性
計算機演算法是對計算機上執行的計算過程的具體描述。計算機演算法的五個特點:
1.有窮性。
2. 確定性。
3. 輸入性。
4. 輸出性。
5.有效性。
❻ 計算機演算法的特性包括
1.輸入:在演算法中可以有零個或者多個輸入
2.輸出:在演算法中至少有一個或者多個輸出
3.有窮行:在執行有限的步驟之後,自動結束不會出現無限循環並且每一個步驟在
可接受的時間內完成
4.確定性:演算法的每一個步驟都具有確定的含義,不會出現二義性
5.可行性:演算法的每一步都必須是可行的,也就是說,每一步都能夠通過執行有限
的次數完成
❼ 關於數據結構的題
三、單項選擇題
( C )1. 數據結構中,與所使用的計算機無關的是數據的 結構;
A) 存儲 B) 物理 C) 邏輯 D) 物理和存儲
( C )2. 演算法分析的目的是:
A) 找出數據結構的合理性 B) 研究演算法中的輸入和輸出的關系
C) 分析演算法的效率以求改進 D) 分析演算法的易懂性和文檔性
( A )3. 演算法分析的兩個主要方面是:
A) 空間復雜性和時間復雜性 B) 正確性和簡明性
C) 可讀性和文檔性 D) 數據復雜性和程序復雜性
( C )4. 計算機演算法指的是:
A) 計算方法 B) 排序方法 C) 解決問題的有限運算序列 D) 調度方法
( C )5. 計算機演算法必須具備輸入、輸出和
等5個特性。
A) 可行性、可移植性和可擴充性 B) 可行性、確定性和有窮性
C) 確定性、有窮性和穩定性 D) 易讀性、穩定性和安全性
( C )6.數據在計算機存儲器內表示時,物理地址與邏輯地址相同並且是連續的,稱之為:
(A)存儲結構 (B)邏輯結構 (C)順序存儲結構 (D)鏈式存儲結構
( A )7. 一個向量第一個元素的存儲地址是100,每個元素的長度為2,則第5個元素的地址是
(A)110 (B)108 (C)100 (D)120
( C )8. 向一個有127個元素的順序表中插入一個新元素並保持原來順序不變,平均要移動 個元素
(A)8 (B)63.5 (C)63 (D)7
( AF )9. 鏈接存儲的存儲結構所佔存儲空間:
(A) 分兩部分,一部分存放結點值,另一部分存放表示結點間關系的指針
(B) 只有一部分,存放結點值
(C) 只有一部分,存儲表示結點間關系的指針
(D) 分兩部分,一部分存放結點值,另一部分存放結點所佔單元數
(E)一定是不連續的 (F)連續或不連續都可以
( B )10. 線性表L在 情況下適用於使用鏈式結構實現。
(A)需經常修改L中的結點值 (B)需不斷對L進行刪除插入
(C)L中含有大量的結點 (D)L中結點結構復雜
( A )11. 棧中元素的進出原則是
A.先進先出 B.後進先出 C.棧空則進 D.棧滿則出
( C )12. 若已知一個棧的入棧序列是1,2,3,…,n,其輸出序列為p1,p2,p3,…,pn,若p1=n,則pi為
A.i B.n-i C.n-i+1 D.不確定
四、簡答題
1. 試比較順序存儲結構和鏈式存儲結構的優缺點。分別在什麼情況下用二者更適合?
順序存儲結構的主要優點是:
節省存儲空間,結點之間的邏輯關系沒有佔用額外的存儲空間。
可實現對結點的隨機存取。
主要缺點是:在作插入或刪除操作時,可能需移動大量元素。
鏈式存儲結構的主要優點是:
邏輯上相鄰的節點物理上不必相鄰;插入、刪除靈活 (不必移動節點,只要改變節點中的指針)。
缺點是:
比順序存儲結構的存儲密度小;查找結點時鏈式存儲要比順序存儲慢。
2. 順序隊的「假溢出」是怎樣產生的?如何知道循環隊列是空還是滿?
系統作為隊列用的存儲區還沒有滿,但隊列卻發生了溢出,我們把這種現象稱為"假溢出"。
判斷是空是滿的方法為:Q->rear=(Q->rear+1) % QueueSize;
3. 設循環隊列的容量為40(序號從0到39),現經過一系列的入隊和出隊運算後,有
① front=11,rear=19; ② front=19,rear=11;問在這兩種情況下,循環隊列中各有元素多少個?
第一種情況為:N=Q->rear-Q->front=8
第二種情況為:N=Q->rear+40-Q->front=32
❽ 什麼是演算法的穩定性
演算法的穩定性一般是指復雜度的穩定性。
一般的演算法都具有穩定性的,也就是說有固定的多項式時間。而一般的np問題和np完全問題有可能沒有多項式的復雜度,所以可能有些問題很快,有些問題慢。
❾ 數據結構卷子!高手幫忙做一下!謝謝!
不好答,看不起你這種人。該刪。
❿ 多選題: 1、計算機演算法必須具備輸入、輸出和________等特性
ACD。計算機演算法有五個重要特性,就是有窮性、確定性、可行性、輸入和輸入。
演算法特點
1、有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2、確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3、有零個或多個輸入、所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4、有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5、有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。
(10)穩定性是計算機演算法必須具備的嗎擴展閱讀:
演算法特點
1、有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2、確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3、有零個或多個輸入、所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4、有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5、有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。