目前分類:大三上-計算機網路 (25)

瀏覽方式: 標題列表 簡短摘要

Q: 敘述何謂二分搜尋法?自己設一個數列來做舉例,並告訴我二分搜尋怎麼使用。

   還有何謂二元樹(binary tree)?並舉例作圖~

  (若有程式碼的貼上後 最好在附上compiler的結果給我看(圖片))
 
Ans 1 何謂二分搜尋法?-
 
    從已排列的數列的中間開始搜尋,如果這個數小於我們所搜尋的數,由於數列已排序,

    則該數左邊的數一定都小於要搜尋的對象,所以無需浪費時間在左邊的數;

    如果搜尋的數大於所搜尋的對象,則右邊的數無需再搜尋,直接搜尋左邊的數。
 
 
Ans 2 如何使用二分搜尋法(假設)?-
 
    二分搜尋法中,將數列不斷的分為兩個部份,每次從分割的部份中取中間數比對,

    例如要搜尋18於以下的數列,首先中間數索引為(0+9)/2 = 4(索引由0開始):


 
    {2   9  13  18  26  34  45  51  59  65}
 
  索引   0   1   2    3    4    5    6    7    8    9
 
 
  由於26大於18,所以轉搜尋左邊的數列:
 
    {2   9  13  18}  26  34  45  51  59  65
 
  由於9小於18,再搜尋右邊的數列,這次就找到所要的數了:
 
       2   9{13  18}  26  34  45  51  59  65
 
Ans 3 何謂二元樹(binary tree)?-
 

   在資料結構中,二元樹是指樹中的每一個「節點」(Nodes)最多只能擁有2個子節點,即分支度小於或等於2。

   二元樹的節點個數是一個有限集合,或是沒有節點的空集合。
 
   二元樹的節點可以分成兩個沒有交集的子樹,稱為「左子樹」(Left Subtree)和「右子樹」(Right Subtree),
 
   且左子樹的值不會大於節點的值,右子樹的值不會小於結點的值。
 
   Ex:圖片016  
 
   而假若我們今天要從上圖搜尋3,從最上結點開始判斷,
 
   比5小,往左子樹判斷,比4小,在往左子樹判斷,比2大,往右子樹即可尋得。

最後總結兩者做個比較,像老師課堂上說過的:
 
當資料型態構造簡單(排序)的時候,搜尋資料所使用的演算法(二元搜尋法)是困難的;
 
當資料型態構造困難(二元樹),則使用的搜尋演算法(直接搜尋法)就簡單多了,
 
而我們寫成是寧願資料結構完整複雜,也不要演算法複雜!

tingtahou 發表在 痞客邦 留言(0) 人氣()

014015  

tingtahou 發表在 痞客邦 留言(0) 人氣()

Q:何謂 Overhead ?

 

A:  

  簡言之,意思為"額外"開銷。

 

  不過意思可能還是很模糊,所以來簡單舉生活例子說明-

 

  我們有時問人:你出門吃中飯花多少時間? 你也許回答:半小時。

 

  但實際上吃中飯可能只花了15分鐘,而剩餘的15分鐘用在來回去餐廳的路程時間、等餐點的時間...等,

 

  這段除了吃中飯外包含的15分鐘,通常可稱為Overhead。


 

ps:

Indirect expenses of running a business not directly associated with a particular item or service sold. For example, wages paid to factory workers and the cost of production materials are direct costs. Electricity, insurance, and benefits paid to workers are overhead expenses. By applying a factor called the burden rate, cost accounting attempts to allocate overhead, where possible, to the cost of goods sold.


Read more: http://www.answers.com/topic/overhead#ixzz276zAtFFF

 

By 教授給的www.answers.com去搜尋Overhead所搜尋的其中一段   

  

tingtahou 發表在 痞客邦 留言(0) 人氣()

HW1 設定類似雞兔同籠問題,並用"數學"和"算術方式來解答。

 

Q:今天聚餐有大人,小孩共10人來吃10個饅頭,大人1人吃3個,小孩2人吃1個,問大人和小孩分別有幾個 ?

 

Ans:

 

運用"數學"解答-

 

假設大人有 X 位 , 小孩有 Y 位,

 

那麼可列出聯立方程式     3X + Y/2 =10

             X+Y=10

 

解出此聯立方程式後,得知 X=2 ,Y=8 故大人有2位,小孩有8位。


 

運用"算數"解答-

 

一個一個來判斷當大人幾位,小孩幾位時,吃的饅頭數量。

大人  小孩  吃的饅頭總數 
 1 1*3 + 9/2 =7.5
 2 2*3 + 8/2 =10
 3 3*3 + 7/2 =12.5
 4 4*3 + 6/2 =15
 5 5*3 + 5/2 =17.5
 6 6*3 + 4/2 =20
 7 7*3 + 3/2 =22.5
 8 8*3 + 2/2 =25
 9 9*3 + 1/2 =27.5

 

 

故答案為 有2位大人,8位小孩。

tingtahou 發表在 痞客邦 留言(0) 人氣()

2012/09/17 part12012/09/17 part22012/09/17 part3  

tingtahou 發表在 痞客邦 留言(0) 人氣()

«12