zoukankan      html  css  js  c++  java
  • 无序线性搜索(Unordered Linear Search)

    假定有一个元素顺序情况不明的数组。这种情况如果我们要搜索一个元素就要遍历整个数组,才能知道这个元素是否在数组中。

    这种方法要检查整个数组,核对每个元素。下面是算法实现:

    #include<stdio.h>
     
    // a function to search "data" in an array "arr" of size "size"
    // returns 1 if the element is present else 0
    int unorderedLinearSearch(int arr[], int size, int data)
    {
        int found_flag = 0;
         
        int i;
        for(i=0;i<size;i++)
        {
            //loop through the entire array and search for the element
            if(arr[i] == data)
            {
                // if the element is found, we change the flag and break the loop
                found_flag = 1;
                break;
            }
        }
         
        return found_flag;
    }
     
    //driver program to test the function
    int main(void)
    {
        int arr[10] = {2, 6, 4, 10, 8, 1, 9, 5, 3, 7};
         
        int to_search = 5;
         
        if(unorderedLinearSearch(arr,10,to_search))
            printf("FOUND");
        else
            printf("NOT FOUND");
     
        return 0;
    }

    时间复杂度(Time Complexity):O(n),这是遍历整个数组最差的情况。

    空间复杂度(Space Complexity):O(1)。

  • 相关阅读:
    打开LogCat以便查看日志
    sql语句优化
    IIS部署说明
    VM上Hadoop3.1伪分布式模式搭建
    C# 程序结构
    CSS笔记1:属性定位
    VS2013 添加控制台程序
    布局 Layout
    [游泳] 游泳学习课程
    "12306"台前幕后:五年利益之争 仓促上线
  • 原文地址:https://www.cnblogs.com/programnote/p/4719119.html
Copyright © 2011-2022 走看看