有看有推 謝謝
不一定是最正確的,但是我還是打一下,有錯不要砍我
=====================================================================
Q1.VP diagrams and Linked List
1.如何定義linked list 答題要寫程式碼
Ans. struct LLNode{
char key;
struct LLNode *next;
};
2.寫一個副程式去處理整串linked list裡的資料 (答題要寫程式碼)
Ans. 自己參考課本p.82
3.畫刪除linked list的節點的VP diagrams
Ans. 圖在課本p.79,如果是增加節點的話就是p.81的圖
======================================================================
Q2.Time Complexity & Big-O
1.運算最快的排序演算法是什麼?Merge Sort屬於哪一種演算法?
Ans. Quick Sort.
Merge Sort屬於divide-and-conquer(分治法).
2.計算一個副程式的時間複雜度還有Big-O,這個副程式以遞迴的方式運行?
Ans. 這種題目會給一段程式碼然後要計算時間複雜度T(n),以及O(n^2)
時間複雜度的計算方法要記一下:
( +, -, *, /) → 加減乘除,一個符號 = 1 unit.
(declaration, function call, return) → 不計算 = 0 unit.
( ++, --) → 加加或減減 = 1 unit.
以下舉例,
ex.(1) a = a^5 → 5 units.
因為 a = a*a*a*a*a ,所以是5units.
(2) a++j → 1 units. 這應該沒問題
(3) a = (b-c)/d → 3 units.
(4) for(j= 0; j<n; j++ ) → (2+2n) units.(不想理解就直接背
因為 ↑ ↑ ↑ ,反正可以帶筆記)
1 (n+1) n
j<n會執行(n+1)次,所以就是n+1個units.
(5) for(j= 0; j<n: j++ ){
tot+= j;
for(k= 0; k<n: k++ )
tot+=k;
}; →2+6n+4n^2 units (應該是會考這種
題型)
課本p.222頁有解釋,還蠻詳細的,用打的我也打不清楚,
就自己看看課本不會再問我吧:)
以上都是計算時間複雜度T(n)的例子。
把T(n)算出來之後才有辦法求Big-O: O(n^2),
這個沒有標準答案,我舉個例子,過程差不多都是這樣
ex. 假設T(n) = 3 + 6n + 4n^2
Ans. n T(n) 5n^2 10n^2 ......
1 13 5 < 10
2 31 20 < 40
3 57 458 < 90
5 133 125 250
7 241 < 245 490
8 207 < 320 640
T(n)< 10n^2,if n≧2
所以O(n^2) c=10 n=2.
也能寫成 T(n)< 5n^2 ,if n≧7
所以O(n^2) c=5 n=7.
所以沒有標準答案,算的出來就行。c是n^2的係數。
3.改寫這個程式以增加她的運算速度,答題要寫程式碼。
Ans.不會-.-
4.改進後的時間複雜度還有Big-O。
Ans.上面那題寫的出來的話,計算過程就跟Q2第2小題講的一樣算法。
======================================================================
Q3.Searching & Sorting
1.Hash table 解釋什麼叫collision(碰撞)。
Ans.課本p272的方法就是了,照順序填入,如果位置有相衝,就擺在後一格。
只是大概敘述一下方法而已,答應應該沒這麼簡單。
2.舉三個解決collision的方法。
Ans.(1)Resolving collisions by replacement.
(2)Resolving collisions by open addressing.
(3)Resolving collisions by chaining.
3.計算Hash table,實驗課作過了。
Ans.做法就跟p272的那個一樣,實驗課做的是實驗那張10.4的那個
======================================================================
Q4.Searching & Sorting
1.QuickSort,實驗課做過了,可是題目有些微的差異,請注意看題目。
Ans.就是課本p.324的方法,大概敘述一下,配合p.328圖示講解來看比較
好看。
Step 1:取中間的那位字母,將他定為pivot。
Step 2:將pivot和字首的字母位置互換。
Step 3:從字首往字尾的方向找「比pivot大的字母」,
從字尾往字首的方向找「比pivot小的字母」。
Step 4:將Step 3找到的兩個字母互換位置,
若Step 3找到的兩個字母arrow across(交叉)(註1),
就將「比pivot小字母」的跟pivot換位置,並且變為新pivot。
Step 5:和pivot比較過的字母位置將會確定,之後將位確定位置的字母
重複上述步驟。
註1:正常情況「比pivot大的字母」要在「比pivot小的字母」左邊,
若是相反,就是arrow across(交叉)。
2.Binary searches,實驗課做過。
Ans.(還不會)
3.如何「編譯」並「執行」一段程式碼。
Ans. (Compile)
gcc -c -ansi sdba.c
gcc -c -pedantic sdba.c
gcc -c -Wall sdba.c
(Link)
gcc -o sdba.exe sdba.o
(Run)
sdba
注意一下,sdba是檔案名稱,可以換。
======================================================================
--
推 blueskydoor:其他題也拜託你了>"< 01/06 13:38
推 toohighca:這個要m一下吧 01/06 13:41
※ 編輯: y90633 來自: 114.45.109.75 (01/06 14:55)
推 armstrong6v:幹學期最優 01/06 14:42
→ y90633:幹 修改文章沒有錢 01/06 14:56
推 blueskydoor: 一題一題發 這樣才賺 01/06 15:01
→ blueskydoor:有問題 大家推文 比較好分開問~~ 01/06 15:01
推 shuding001:版主請置底 01/06 16:06
推 balu770303:幹 在宿舍含淚推 01/06 16:22
→ Slash520:感謝 01/06 17:21
推 larry8550:有推有下 01/06 18:05
推 lknuke:有下有推 01/06 21:18
推 bestshoter16:感謝小白 就甘心 01/06 21:52
推 Slash520:誰會備份阿?趕快備份 01/06 21:52
→ y90633:我自己都沒備份了... 01/06 21:53
推 armstrong6v:M起來就不能刪了啊 01/06 21:58
→ armstrong6v:有看到的就推一下吧= =...使用者付費道理.. 01/06 21:59
推 Slash520:收錄精華區 01/06 22:08
推 dwight90488:推 01/06 22:12
推 gn2228775:專業文 01/06 22:18
推 dwight90488: 強者我同學小白 (照顧長id) 01/06 22:38
推 armstrong6v:白神!白神!白神!白神!白神!白神!白神!白神!白神!白神! 01/06 22:48
推 lknuke:好文不推不行! ║ ║ ╰═╗ ║ 01/06 23:34
→ lknuke: \ ═╬═╬═ ╭╯ ═╦═╩═╦═ 01/06 23:34
→ lknuke: ● ╰╮╯ ╰═╬═╮ ╰╮ ╭╯ 01/06 23:34
→ lknuke: ■︾ ╭╰╮ ║ ╰═╮ 01/06 23:34
→ lknuke: /> ╯ ╰ ╰╝ ╭═╯ ╰═╮ 01/06 23:34
推 lknuke: 好文不推不行! ║ ║ ╰═╗ ║ 01/06 23:44
→ lknuke: \ ═╬═╬═ ╭╯ ═╦═╩═╦═ 01/06 23:44
→ lknuke: ● ╰╮╯ ╰═╬═╮ ╰╮ ╭╯ 01/06 23:44
→ lknuke: ■︾ ╭╰╮ ║ ╰═╮ 01/06 23:44
推 ilovecindy:實在太屌了我的媽 01/07 00:43
推 fishfeed641:沒下有推是上等人 01/07 01:23
→ fishfeed641:沒下沒推是中等人 01/07 01:23
→ fishfeed641:有下有推是下等人 01/07 01:24
→ fishfeed641:有下沒推就不是人 01/07 01:24
→ fishfeed641:第二個跟第三個順序錯了... 01/07 01:25
推 lknuke:樓上自HIGH 01/07 01:48
→ jujupp:那Q3的第三小題到底是什麼?? 01/08 21:46
推 jujupp:YA可以推了~~~ 小白真強!!! 01/08 21:48
※ 編輯: y90633 來自: 114.45.106.48 (01/08 22:17)