Category Archive for '專欄'

Posted By Mr. Thursday 不知道各位是否有接聽電話插撥 (call waiting) 的經驗? 我們會先把第一個接聽的人先暫時停著,然後接聽新打來的電話。不知道目前插撥最多能接聽多少通電話?假設依照這個方法一直接聽新的插撥電話,就會一直把上一通電話暫時儲存,等新接通的電話結束後,再回復上一通、上上一通、一直到第一通接聽的電話。 堆疊 (Stack) 就是類似的資料結構。「堆疊」有兩個方法 (method) 可以呼叫:推進 (push) 和 彈出 (pop)。透過這兩個方法的使用,我們可以達到讓資料「先進後出」的效果 (LIFO: Last In First Out)。甚麼是先進後出呢?讓我們再舉一個例子:搭電梯。當我們搭電梯的時候,通常最先進電梯的會擠在後面,後進電梯的比較靠近門口。如果都是同一層離開電梯,剛才比較慢近來電梯的人,反而是比較早離開電梯的人,這就是「先進後出」(LIFO) 的效果了。 再回到剛才接聽插撥電話的例子,正好就是先進後出的例子!最後插撥的先結束對話,最早打來的最慢結束對話。接下來讓我們看看,堆疊實際運作的情形,會向下面這一張動畫所顯示的:  

Read Full Post »

Posted By Mr. Thursday 在〈二元樹在排序的應用〉裡面,我們提到了演算法就是完成一件事情的步驟,資料結構則是和演算法搭配,讓步驟有運作的東西,像是刮鬍刀的步驟,會運作在刮鬍刀或是插頭上面。「樹」(tree) 是一種資料結構,有樹根樹枝,看起來像是倒立的一棵樹。二元數則是每個節點只有兩個分支的樹。此外,我們可以用二元樹這個資料結構,完成「排序」(sorting) 的演算法。下面是一段各種排序演算法的影片:   除了排序以外,今天要和各位介紹,當我們把資料用一棵樹排序之後,要如何進行搜尋?排序或是沒有排序,對搜尋的效率有甚麼樣子的影響?我們先看看下面這兩張圖,左邊是排序過程,右邊是搜尋過程的動畫:

Read Full Post »

Posted by Mr. Friday 最近在電視上看到西藏的新聞,感慨之餘,聽聞對岸政府為了『影響』輿論,已經將 YouTube 封殺,理由是不讓國內民眾接觸到西藏暴動的影片紀錄畫面。消息被封鎖,民眾自然只能聽信中央電視台的官方說法。 姑且不論 G F W 這次是否又能發揮它的功效,中共政府封殺 YouTube 的做法,讓我想到去年的一件新聞。以下摘錄自劉必榮教授的部落格: 國際新聞週報 5.27 – 6.3 5月27日,星期日,午夜,委內瑞拉總統查維茲關掉了與他唱反調的電視台卡拉卡斯電視台(Radio Caracas Television, RCTV),另外用政府的錢,資助成立另一家電視台 〈按: TVes〉。 查維茲行事一向走民粹作風,也經常引起爭議。但這次乾脆把反對他的電視台關掉,手段之粗暴、直接,令人咋舌。

Read Full Post »

Posted by Mr. Tuesday 其實這篇文章,只是想邀請正在讀它的你們,連到《獨立書店大小事電子報》的網頁去,訂閱它,並且用力地轉寄給每一個可能會感興趣的朋友,邀請他們一起加入吧!   上個月中旬,Mr. Tuesday和幾個大學摯友們聚餐敘舊。席間聊到當今出版業與書店通路的生態,摯友之一不禁苦勸道:「現在走文學路線的出版社已經越來越難作了,別再跟連鎖書店或是網站買書了啦!既然是上班族,如果不差那幾十塊錢的話,就直接跟出版社訂書、或是多多支持各地的獨立書店吧!」   於是在兩天過後,當我要訂購即將上市的作家全集時,便聽從了她的建議、直接劃撥給出版社。在博客來的網站上,當然也有同樣的預購訊息,而我所付的價格還比那上面多出一元。但我如果沒猜錯的話,出版社從中獲得的利潤應該會多好幾百塊吧?   接著是在上個星期,我在詩人楊佳嫻的部落格上看到了《獨立書店電子報》發刊的訊息。這是由位在台中的東海書苑、位在嘉義(台南也有分店)的洪雅書房、位在竹北的草葉集、位在永和的小小書房、以及位在淡水的有河book所共同發行的電子報。這五家小書店各有特色,而電子報的內容除了各書店部落格上的文章之外,還有這些老闆們的推薦書目、店頭的折扣訊息,以及當週的活動與講座資訊等…

Read Full Post »

Posted By Mr. Thursday 在〈由樹的前序、中序、後序走法來談資料結構〉文章裡面提到了演算法就像是做事情的方法,資料結構則是對應演算法可以運作的東西,譬如說刮鬍子有步驟一、步驟二、步驟三,但是要有刮鬍刀、插頭、以及鬍鬚,那些步驟才有運作的東西,甚至不同的刮鬍刀,也會讓同樣的步驟有不同的執行效率,或是連原來的步驟都要改變,譬如說不是電動刮鬍刀,原來步驟裡面插插頭的那一步,也就可以不用作了。演算法和資料結構之間的關係也是如此,譬如說排序的演算法,可以用不同的資料結構來實現,好的資料結構,可能某一種排序演算法最適合,對其他種排序演算法,可能反而讓速度變慢。 因此,演算法和資料結構,通常會一起考慮,而演算法每一步,也就是電腦可以實現的基本步驟所組成。譬如說兩個數字相加,或是把「樹」這個資料結構裡面的節點根據某種規則移動,都是電腦運算基本步驟所可以達成的。但是如果步驟是「改善排序的品質」的敘述,電腦可能就看不懂了,這時候就是程式設計師,把這些人看的懂的需求,轉換成電腦可以實現的步驟,也就是演算法和對應的資料結構,最後再用程式 (編程) (program),變成電腦真的可以執行的語言,達到最初想要執行的功能。那麼今天想要完成的功能是甚麼呢?「排序」,排序就是把原本雜亂無章的一堆東西,按照某種順序排好,譬如說圖書館裡面的書籍,按照書籍的編號有小到大排好,譬如說醫院的病歷,按照病歷號碼有小到大排好,譬如說一堆檔案,按照字母順序或是檔案時間順序有早到晚排好,這些都是排序的應用。那麼電腦要如何完成「排序」(sort) 這件工作呢?「二元樹」 (binary tree) 怎樣子應用在排序這項工作呢?

Read Full Post »

Posted by Mr. Saturday 「YouTube 是一個影音平台,要看影片就得叫使用者自己連到 YouTube 的網站去。」這件事情在使用者可以把 YouTube 的影片嵌入到自己的網頁上之後,早已經不是事實,現在網路上到處都可以看得到網路出版者或是部落客把 YouTube 的影片透過簡單的 HTML 標籤引用到自己的文章內容去。然而各位是否注意過,除了把影片拿到 YouTube 以外的地方嵌入讓大家看之外,瀏覽者在 YouTube 以外的地方似乎跟影片本身沒什麼互動性可言,也就是說,如果瀏覽者想要對影片留下一些回應或是評價,就真的只能自己連到 YouTube 網站中這支影片的連結,才能進行這些動作。 現在情況完全改觀了,Google 今天在 Google Code 上面發表了 YouTube APIs and Tools,可以讓 YouTube 的影音平台整個開放出來,現在 YouTube 不再只是一個使用者的目的地,它已經變成一個徹底的網路服務。對於網路上的開發者們而言,可以透過這一套工具和 API 存取 YouTube 上面所有的影片和 YouTube 這個平台本身,簡單來說就是開發者現在可以掌握 YouTube 上面所有的影音內容,自由地去使用,而不再只是把影片嵌入自己的網頁這項簡單的功能而已。對於使用者而言,這就意味著他們在每個地方看到的 YouTube 影片,現在有了更強的互動性,可以直接留言或是留下評價,不需要再連回 YouTube 做這件事情,這些資料會透過這些 API 自動地傳回 YouTube 做彙整的動作。簡單舉例來說,網站開發者現在可以透過 API 做以下事情:

Read Full Post »

Posted by Mr. Saturday 去年 (2007 年) 的 4/14 號,Google 發出消息,將以 31.8 億的美金併購廣告公司 DoubleClick,這個併購案延宕了將近一年,終於在今天美國時間 3/11 通過歐盟的審核以及調查,正式獲得 European Commission (歐盟執行委員會) 的同意。對於這項併購案有興趣的讀者,可以參考我去年寫的 超越 YouTube 的天價!Google 砸下 31.8 億美金併購 DoubleClick,底下我們就簡單地把背景再從該篇文章引用交代一次: 為什麼 Google 會砸下將近於購併 YouTube 時兩倍的錢來買這家公司?這就要從網路廣告說起了,現在的網路廣告分為兩大類,一是付費搜尋廣告 (paid search advertising);二是展示廣告 (display advertising,不知道這樣翻成中文合不合適,有錯還麻煩讀者們指正)。paid search advertising 是 Google 的主力,Google 的主要廣告方法很清楚,99% 是來自於根據搜尋的結果,把相關的廣告餵給使用者,這就是 AdWords。另外 AdSense 等 等根據網頁內容動態產生廣告的方式,都是 Google 的主要廣告方式。相對於此,display advertising 就是 Yahoo! 的地盤,包括了 banner、video、flash […]

Read Full Post »