① 一個計算機演算法的基礎題求解答
根據你給出的問題,可以得到以下幾個信息:
每對夫妻肯定是沒辦法握手的;
自己和自己沒辦法握手;
一共只有20個人
所以,小明得到了19種握手數,那麼就是從0到18.
對於握手數是0的人,小紅肯定認識;
對於握手數18的人,小紅肯定不認識;
因此,小紅的握手數是1-17中的一種。
② 演算法導論 習題
將集合排序,復雜度O(nlogn)。
從小到大遍歷整個數組的每個數i,計算出X-i是否存在,復雜度O(n)。
於是就是復雜度O(nlogn) + O(n) = O(nlogn)
③ 演算法與程序框圖習題
一、選擇題
1、根據演算法的程序框圖,當輸入n=6時,輸出的結果是( )
A.35 B.84
C.49 D.25
2、如圖,漢諾塔問題是指有3根桿子A,B,C,桿子上有若干碟子,把所有的碟子從B桿移到A桿上,每次只能移動一個碟子,大的碟子不能疊在小的碟子上面,把B桿上的3個碟子全部移動到A桿上,最少需要移動的次數是( )
A.12 B.9 C.6 D.7
3、一程序框圖如圖1-1-25所示,它能判斷任意輸入的數x的奇偶性,其中判斷框中的條件是( )
A.m=0 B.x=0 C.x=1 D.m=1
圖1-1-25
4、閱讀下面的程序框圖並判斷運行結果為…( )
A.55 B.-55
C.5 D.-5
5、給出下面的演算法:該演算法表示( )
S1 m=a;
S2 若b<m,則m=b;
S3 若c<m,則m=c;
S4 若d<m,則m=d;
S5 輸出m.
A.a,b,c,d中最大值 B.a,b,c,d中最小值
C.將a,b,c,d由小到大排序 D.將a,b,c,d由大到小排序
6、下列關於演算法的說法中,正確的是 ( )
A.求解某一類問題的演算法是唯一的
B.演算法必須在有限步操作之後停止
C.演算法的每一步操作必須是明確的,不能有歧義或模糊
D.演算法執行後一定產生確定的結果
7、演算法共有三種邏輯結構,即順序結構、條件分支結構和循環結構,下列說法正確的是( )
A.一個演算法只能含有一種邏輯結構
B.一個演算法最多可以包含兩種邏輯結構
C.一個演算法必須含有上述三種邏輯結構
D.一個演算法可以含有上述三種邏輯結構的任意組合
8、下面的程序框圖中是循環結構的是( )
A.①② B.②③ C.③④ D.②④
9、閱讀下邊的程序框圖,若輸入的n是100,則輸出的變數S和T的值依次是( )
A.2 500,2 500 B.2 550,2 550
C.2 500,2 550 D.2 550,2 500
10、程序框是程序框圖的一個組成部分,下面的對應正確的是 ( )
①終端框(起止框),表示一個演算法的起始和結束 ②輸入、輸出框,表示一個演算法輸入和輸出的信息 ③處理框(執行框),功能是賦值、計算 ④判斷框,判斷某一條件是否成立,成立時在出口處標明「是」或「Y」,不成立時標明「否」或「N」
A.(1)與①,(2)與②,(3)與③,(4)與④
B.(1)與④,(2)與②,(3)與①,(4)與③
C.(1)與①,(2)與③,(3)與②,(4)與④
D.(1)與①,(2)與③,(3)與④,(4)與②
二、填空題
1、已知函數f(x)=|x-3|程序框圖1-1-26表示的是給定x值,求其相應函數值的演算法.請將該程序框圖補充完整.其中①處應填_______________,②處應填_______________.
圖1-1-26
2、寫出下列程序框圖表示的演算法功能.
(1)如1-1-14圖(1)的演算法功能是(a>0,b>b)____________________.
(2)如1-1-14圖(2)的演算法功能是_____________________.
圖(1) 圖(2)
圖1-1-14
3、已知函數f(x)=|x-3|,下面的程序框圖表示的是給定x值,求其相應函數值的演算法.請將該程序框圖補充完整.其中①處應填___________________________________________________.
②處應填_______________________________________________________________________.
4、指出程序框圖1-1-24運行結果.
圖1-1-24
若輸入-4,則輸出結果為_______________.
三、解答題
1、寫出求方程ax2+bx+c=0的根的演算法,畫出相應的程序框圖,並要求輸出它的實根.
2、寫出一個求解任意二次函數y=ax2+bx+c(a≠0)的最值的演算法.
3、一把石子,3個3個地數,最後餘下2個;5個5個地數,最後餘下3個;7個7個地數,最後餘下4個.請設計一個演算法,求出這把石子至少有多少個.
④ 關於自考《數據結構導論》的疑問!同比C語言(分不多全給,請不嗇指點)
你得明確學習的目的,你現在學會數據結構並不能編程,學數據結構好比學建築的,學設計房屋,而編程好比該房,兩者之間還是有一個過度的,所以你現在因為無法編程,或無法將其與編程聯系起來而感到很吃力,這是在學習上的誤區,要想學好數據結構,要弄明白程序運行的過程(c是面向過成的),多和其他的學員交流,一般情況下,把數據結構學的非常好後都不一定會編程,若你真要嚴格要求自己,我建議你把c中結構體及鏈表那塊的知識弄懂,要非常懂,還有就是地址和指針那塊的知識弄懂就ok了,
再就是看看教學視頻,在網上搜一些現成的程序,拷過去運行一下,改改其中的代碼,你一下就明白了,
也就是在讀程序中領悟演算法的實現過程
⑤ 請教高手自考數據結構演算法閱讀題怎麼提高,不會做。
首先,要能夠讀懂代碼,總結演算法的思想,搞清楚該題演算法是完成什麼功能,然後是填空也好,寫演算法結果也好,就不成問題了。要想提高的快,就得多練啊。同時教材中的相關演算法也要熟,好多是書中的原演算法