`
异步获取爱
  • 浏览: 80021 次
  • 性别: Icon_minigender_1
  • 来自: 大男子主义世界
社区版块
存档分类
最新评论

循序搜寻法(使用卫兵)

 
阅读更多
說明
搜尋的目的,是在「已排序的資料」中尋找指定的資料,而當中循序搜尋是最基本的搜尋法,只要從資料開頭尋找到最後,看看是否找到資料即可。
解法
初學者看到循序搜尋,多數都會使用以下的方式來進行搜尋:
while(i < MAX) {
    if(number[i] == k) {
        printf("找到指定值");
        break;
    }
    i++;
}



這個方法基本上沒有錯,但是可以加以改善,可以利用設定衛兵的方式,省去if判斷式,衛兵通常設定在數列最後或是最前方,假設設定在列前方好了(索引0的位置),我們從數列後方向前找,如果找到指定的資料時,其索引值不是0,表示在數列走訪完之前就找到了,在程式的撰寫上,只要使用一個while迴圈就可以了。

下面的程式為了配合衛兵的設置,自行使用快速排序法先將產生的數列排序,然後才進行搜尋,若只是數字的話,通常您可以使用程式語言函式庫所提供的搜尋函式。

public class Search {
    public static int linear(int[] number, int des) {
        int[] tmp = new int[number.length + 1];
        for(int i = 1; i < tmp.length; i++) {
            tmp[i] = number[i-1];  
        }
        
        tmp[0] = des;
        
        int i = number.length; 
        while(tmp[i] != tmp[0]) 
            i--; 

        return i - 1;    
    }
    
    public static void main(String[] args) {
        int[] number = {1, 2, 3, 4, 6, 7, 8};
        int find = Search.linear(number, 3);
        System.out.println(find >= 0 ? "找到數值於索引" + find : "找不到數值"); 
    }
} 
分享到:
评论

相关推荐

    C经典算法之循序搜寻法(使用卫兵)

    ### C经典算法之循序搜寻法(使用卫兵) #### 概述 在计算机科学领域,搜索算法是数据结构与算法中一个重要的组成部分。它主要用于查找特定元素或记录的位置,以便于后续处理如更新、删除等操作。本文将重点介绍一...

    C语言经典算法大全(程序员必备).rar

    � 排序 得分排行 选择、插入、气泡排序 ...循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 � 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵......

    java开发经典算法

    循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 堆叠 - 使用阵列实作 堆叠 - 使用链结实作(C 语言动态记忆体宣告) 堆叠 - 使用 Java 作物件封装 佇列(队列) - 使用阵列实作 ...

    经典算法大全,常用的算法都在这里

    老掉牙 河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个皇后 八枚银币 生命游戏 ...背包问题(Knapsack Problem) ...循序搜寻法(使用卫兵) 二分搜寻法(搜

    C-Program-examples.rar_2维码 C语言_c 卡牌游戏_字串核对_背包问题_蒙塔卡罗法

    循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 对C语言的学习非常...

    c语言经典算法包括老掉牙,汉诺塔,三色旗

    老掉牙 河内塔 巴式数列 ...循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵

    C语言经典算法大全

    循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法  矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵

    C语言经典算法大全(几十个经典案例,都有详尽代码)

    C语言经典几十个经典案例,都有详尽 河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个皇后 八枚银币 生命游戏 ...背包问题(Knapsack Problem...循序搜寻法(使用卫兵)

    数据结构与算法

    循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 ...

    java各种经典算法

    循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 ...

    经典常用算法 河内塔

    循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 ...

    Java和C语言实现各种经典算法(含代码图例)

    循序搜寻法(使用卫兵) 二分搜寻法(搜寻原则的代表) 插补搜寻法 费氏搜寻法 矩阵 稀疏矩阵 多维矩阵转一维矩阵 上三角、下三角、对称矩阵 奇数魔方阵 4N 魔方阵 2(2N+1) 魔方阵 堆叠、伫列 堆叠 ...

    经典算法大全.pdf

    基数排序法 102 42.Algorithm Gossip: 循序搜寻法(使用卫兵) 104 43.Algorithm Gossip: 二分搜寻法(搜寻原则的代表) 106 44.Algorithm Gossip: 插补搜寻法 109 45.Algorithm Gossip: 费氏搜寻法 ...

    算法大全(C语言版本)很经典

    - **定义**: 循序搜寻法,使用卫兵简化边界条件。 - **应用场景**: 数据搜索。 ### 42. 二分搜寻法(搜寻原则的代表) #### 说明 - **定义**: 二分搜寻是一种高效的搜索算法,尤其适用于已排序数组。 - **应用场景...

    经典算法实例.pdf

    “超长整数运算”、“长PI”、“阿姆斯壮数”、“最大访客数”、“中序式...循序搜寻法(使用卫兵)”、“二分搜寻法(搜寻原则的代表)”、“插补搜寻法”、“费氏搜寻法”、“多维矩阵转一维矩阵”、“上三角、下三角...

    经典算法大全.

    循序搜寻法(使用卫兵) - **概述**:循序搜寻是一种简单但效率较低的线性搜索算法。 #### 40. 二分搜寻法(搜寻原则的代表) - **概述**:二分搜索是在有序数组中查找特定元素的有效方法。 #### 41. 插补搜寻法 ...

Global site tag (gtag.js) - Google Analytics