Linear Search Algorithm - 線性搜尋法

Posted by Alan Zhan on Saturday, July 10, 2021

在查找一個元素是否存在的時候,我們最常使用的方式是甚麼呢?答案是 for 或者是 while 迴圈,恭喜你!已經學習完 Linear Search 了!

概念

線性搜尋 (Linear Search):這個演算法會訪問每個元素,確認元素在陣列中的哪個位置,如果找不到元素則會回傳 -1。

複雜度

  • 時間複雜度: O(n)
  • 空間複雜度: O(1)

範例

Go

package main

import "fmt"

func linearSearch(list []int, target int) int {
    for i := 0; i < len(list); i++ {
        if list[i] == target {
            return i
        }
    }
    return -1
}

func main() {
    fmt.Println(linearSearch([]int{1, 2, 3, 4, 5}, 3)) // 2
    fmt.Println(linearSearch([]int{1, 2, 3, 4, 5}, 6)) // -1
}

C#

class Algorithm
{
    public static int linearSearch(int[] list, int target)
    {
        for (var i = 0; i < list.Length; i++)
        {
            if (list[i] == target)
            {
                return i;
            }
        }

        return -1;
    }

    public static void Main(String[] args)
    {
        Console.WriteLine(linearSearch(new int[] {1, 2, 3, 4, 5}, 3)); // 2
        Console.WriteLine(linearSearch(new int[] {1, 2, 3, 4, 5}, 6)); // -1
    }
}

歡迎到我的 Facebook Alan 的筆記本 留言,順手給我個讚吧!你的讚將成為我持續更新的動力,感謝你的閱讀,讓我們一起學習成為更好的自己。