線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1843
推到 Plurk!
推到 Facebook!

搜尋演算法

 
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-23 13:30:14 IP:61.218.xxx.xxx 未訂閱
資料來源:http://content.edu.tw/senior/computer/ks_ks/book/algodata/algorithm/algo41.htm 在這單元的最前面,我們有提到要如何在電話簿中找到某一個人的名字,這個動作就是所謂的搜尋(Search),在日常生活中其實有很多搜尋的例子,如在漫畫店找尋我們想看的漫畫就是一個常見的例子,以下我們將介紹兩種搜尋法,讓大家體會一下不同的搜尋演算法,對程式的進行會有什麼不同的影響? 搜序搜尋法(sequential search) 例:有一陣列A存放的資料為〔2,5,11,34,22,7〕,試問22存在於這個A陣列的第幾個位置。 說明: (1)也就一個一個搜尋,從第一個開始找起,直到找到時程式才終止。 (2)適用於未排序的狀況。 輸入:n個資料的陣列A 欲找尋的數k 輸出:22在陣列A中的位置location 演算法:
 private Sub Form_Activate()     Dim A(n) As Integer     Dim location As Integer     Const x = k     Do While location <= n and A[location] <> x     Location = loaction   1     Loop     If location > n then     Location = 0     End    End Sub
解說:2,5,11,34,22,7 第一次:找到2 第二次:找到5 第三次:找到11 第四次:找到34 第五次:找到22 top 二分搜尋法(binary search) 例:有一陣列A存放已排序資料為〔2,5,7,11,22,34〕,試問22存在於這個A陣列的第幾個位置。 說明: (1)假設x是我們要找的;將陣列分為兩部分,找出此陣列的中間點y,如果x大於y,則選擇中間點右邊的陣列,反之,則選擇左邊的陣列。 (2)反覆做(1)的動作,直到找到x,或是只剩一個數時,如果最後一個數不等於x,則x不在此數列中。 (3)二分搜尋法較適用於已排序好的情況。 輸入:n個已排序資料的陣列A 欲找尋的數k 輸出:22在陣列A中的位置location 演算法: 圖解: 聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]--- 發表人 - axsoft 於 2002/08/23 13:30:51
系統時間:2024-05-02 14:05:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!