線性搜索算法

何時使用線性搜索算法

  • 當處理一個小數據集時。
  • 當搜索存儲在連續內存中的數據集時。

線性搜索算法在什么情況下優于其他搜索算法?

當列表或數組未排序時,或者當輸入的大小相對較小時,首選線性搜索算法。它易于實現,并且不需要數據按任何特定順序排列。

以下是線性搜索算法的實現:

C++

#include <iostream>
#include <vector>
using namespace std;int search(vector<int>& arr, int x) {for (int i = 0; i < arr.size(); i++){if (arr[i] == x){return i;}}return -1;
}int main() {vector<int> arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int res = search(arr, x);if (res == -1){cout << "數組中不存在元素";}else{cout << "數字存在索引是 " << res;}return 0;
}

輸出

數字存在索引是 5

C


#include <stdio.h>int search(int arr[], int N, int x)
{for (int i = 0; i < N; i++)if (arr[i] == x)return i;return -1;
}int main(void)
{int arr[] = arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int N = sizeof(arr) / sizeof(arr[0]);int result = search(arr, N, x);(result == -1)? printf("數組中不存在元素"): printf("數字存在索引是 %d", result);return 0;
}

輸出

數字存在索引是 5

Java


import java.io.*;class GFG {public static int search(int arr[], int N, int x){for (int i = 0; i < N; i++) {if (arr[i] == x)return i;}return -1;}public static void main(String args[]){int arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int result = search(arr, arr.length, x);if (result == -1)System.out.print("數組中不存在元素");elseSystem.out.print("數字存在索引是 "+ result);}
}

輸出

數字存在索引是 5

python

def search(arr, N, x):for i in range(0, N):if (arr[i] == x):return ireturn -1if __name__ == "__main__":arr = {3, 5, 7, 12 ,22, 56, 66}x = 56N = len(arr)result = search(arr, N, x)if(result == -1):print("數組中不存在元素")else:print("數字存在索引是", result)

輸出

數字存在索引是 5

C#


using System;class GFG {public static int search(int[] arr, int N, int x){for (int i = 0; i < N; i++) {if (arr[i] == x)return i;}return -1;}public static void Main(){int[] arr = {3, 5, 7, 12 ,22, 56, 66};int x = 56;int result = search(arr, arr.Length, x);if (result == -1)Console.WriteLine("數組中不存在元素");elseConsole.WriteLine("數字存在索引是 "+ result);}
}

輸出

數字存在索引是 5

JavaScript


function search(arr, n, x)
{for (let i = 0; i < n; i++)if (arr[i] == x)return i;return -1;
}let arr = {3, 5, 7, 12 ,22, 56, 66};let x = 56;let n = arr.length;let result = search(arr, n, x);(result == -1)? console.log("數組中不存在元素"): console.log("數字存在索引是 " + result);

輸出

數字存在索引是 5

PHP

<?phpfunction search($arr, $n, $x)
{for($i = 0; $i < $n; $i++) {if($arr[$i] == $x)return $i;}return -1;
}$arr = array(3, 5, 7, 12 ,22, 56, 66); 
$x = 56;$result = search($arr, sizeof($arr), $x);
if($result == -1)echo "數組中不存在元素";
elseecho "數字存在索引是 " ,$result;
?>

輸出

數字存在索引是 5

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73056.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73056.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

踩坑記錄:yolov5環境版本要求比較嚴苛?

在安裝yolov5環境時&#xff0c;numpy安裝失敗報錯metadata-generation-failed 報錯如下&#xff1a; Collecting numpy1.18.5 (from -r /*****/yolov5-5.0/requirements.txt (line 5))Using cached https://pypi.tuna.tsinghua.edu.cn/packages/01/1b/d3ddcabd5817be02df0e6…

Java設計模式系列:單例模式的7種實現與適用場景

一、單例模式核心價值與實現原則 1. 使用場景 全局配置類(如數據庫連接池)日志記錄器Spring默認Bean作用域硬件設備訪問(如打印機)2. 設計三原則 私有構造器:禁止外部實例化靜態實例持有:全局唯一訪問點延遲加載(可選):避免資源浪費二、七種單例實現方式深度解析 1.…

OpenManus-通過源碼方式本地運行OpenManus,含踩坑及處理方案,chrome.exe位置修改

前言&#xff1a;最近 Manus 火得一塌糊涂啊&#xff0c;OpenManus 也一夜之間爆火&#xff0c;那么作為程序員應該來嘗嘗鮮 1、前期準備 FastGithub&#xff1a;如果有科學上網且能正常訪問 github 則不需要下載此軟件&#xff0c;此軟件是提供國內直接訪問 githubGit&#…

【最新】DeepSeek 實用集成工具有那些?

deepseek 系列github倉庫地址 【主頁】deepseek-aiDeepSeek-R1DeepSeek-V3DeepSeek-VL2【本文重點介紹】awesome-deepseek-integration 注意&#xff1a;以下內容來自awesome-deepseek-integration DeepSeek 實用集成&#xff08;awesome-deepseek-integration&#xff09; 將…

開源!速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器

開源&#xff01;速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器 目錄 開源&#xff01;速度100Kb/s的有線和無線雙模ESP32S3芯片的DAP-Link調試器本項目未經授權&#xff0c;禁止商用&#xff01;本項目未經授權&#xff0c;禁止商用&#xff01;本項目未經授權&…

Flink測試環境Standalone模式部署實踐

1.JDK環境 參考官方文檔&#xff1a; https://nightlies.apache.org/flink/flink-docs-release-1.20/release-notes/flink-1.18/ 2.下載Flink&#xff1a;https://flink.apache.org/downloads/ 本次驗證用的是&#xff1a;https://www.apache.org/dyn/closer.lua/flink/flink…

在16卡服務器上使用最新版的CUDA和驅動訓練`llama - 2 - 7b`和`llama - 2 - 70b`模型,并生成訓練指標數據

要在16卡服務器上使用最新版的CUDA和驅動訓練llama - 2 - 7b和llama - 2 - 70b模型&#xff0c;并生成訓練指標數據&#xff0c;你可以按照以下步驟進行&#xff1a; 1. 環境準備 確保你的服務器已經安裝了最新版的CUDA和驅動&#xff0c;并且安裝了必要的Python庫&#xff0…

macOS 終端優化

macOS 安裝、優化、還原、升級 Oh My Zsh 完全指南 &#x1f680; Oh My Zsh 是 macOS 終端增強的利器&#xff0c;它能提供強大的自動補全、主題定制和插件支持&#xff0c;讓你的終端更高效、更炫酷。本文將全面介紹 如何安裝、優化、還原、重新安裝和升級 Oh My Zsh&#x…

計算機網絡--訪問一個網頁的全過程

文章目錄 訪問一個網頁的全過程應用層在瀏覽器輸入URL網址http://www.aspxfans.com:8080/news/index.aspboardID5&ID24618&page1#r_70732423通過DNS獲取IP地址生成HTTP請求報文應用層最后 傳輸層傳輸層處理應用層報文建立TCP連接傳輸層最后 網絡層網絡層對TCP報文進行處…

CAAC無人機考證備考清單

一、培訓機構內部的考試大綱/備考指南 《機長筆試大綱》 《機長口試大綱》 《教員筆試大綱》 《教員口試大綱》&#xff08;不同機構的文件、命名可能不同&#xff09; 二、培訓機構內部題庫 題庫內容包含(仿照多旋翼題庫制作&#xff09;&#xff1a; 分類 子分…

【BUG】類文件具有錯誤的版本 61.0, 應為 52.0,請刪除該文件或確保該文件位于正確的類路徑子目錄中。

報錯&#xff1a; [ERROR] 類文件具有錯誤的版本 61.0, 應為 52.0 [ERROR] 請刪除該文件或確保該文件位于正確的類路徑子目錄中。 報錯截圖&#xff1a; 原因&#xff1a;Java 版本和 Spring 不兼容&#xff0c;顯示 Spring 版本過高 解決方法 1. 使用更高版本的 J…

卷積神經網絡(筆記01)

視覺處理三大任務&#xff1a;分類、目標檢測、圖像分割 CNN網絡主要有三部分構成&#xff1a;卷積層&#xff08;Convolutional Layer&#xff09;、池化層&#xff08;Pooling Layer&#xff09;和激活函數 一、解釋卷積層中的偏置項是什么&#xff0c;并討論在神經網絡中引…

Django-ORM-prefetch_related

Django-ORM-prefetch_related 模型定義N1 查詢問題示例 使用 prefetch_related 優化查詢處理更復雜的查詢示例&#xff1a;預取特定條件的書籍示例&#xff1a;預取多個關聯字段 性能比較注意事項總結 通過 Author 和 Books 兩個模型來理解 Django 的 prefetch_related 方法。 …

Spring Boot3整合Knife4j(4.5.0)

整體概述 Spring Boot 是用于簡化 Spring 應用開發的框架&#xff0c;通過自動配置和約定大于配置原則&#xff0c;能讓開發者快速搭建和運行 Spring 應用。Knife4j 是基于 Swagger 增強的 API 文檔生成工具&#xff0c;可方便展示和調試 API 接口&#xff0c;生成美觀易用的 …

Java 大視界 -- 區塊鏈賦能 Java 大數據:數據可信與價值流轉(84)

&#x1f496;親愛的朋友們&#xff0c;熱烈歡迎來到 青云交的博客&#xff01;能與諸位在此相逢&#xff0c;我倍感榮幸。在這飛速更迭的時代&#xff0c;我們都渴望一方心靈凈土&#xff0c;而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識&#xff0c;也…

K8S學習之基礎二十四:k8s的持久化存儲之pv和pvc

K8S的存儲之pv和pvc 在 Kubernetes (k8s) 中&#xff0c;持久化存儲是通過 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 來實現的。PVC 是用戶對存儲資源的請求&#xff0c;而 PV 是集群中的實際存儲資源。PVC 和 PV 的關系類似于 Pod 和 Node 的關系。 Persisten…

【Hive】Hive安裝

Hive 第一章 Hive的基礎知識 第二章 Hive安裝 第三章 DDL&#xff08;Data Definition Language&#xff09;數據定義 第四章 DML&#xff08;Data Manipulation Language&#xff09;數據操作 第五章 Hive查詢 第六章 Hive的基礎知識 第七章 Hive函數 第八章 分區表和分桶表 …

關于C/C++語言的初學者在哪刷題,怎么刷題

引言&#xff1a; 這篇博客主要是針對初學者關于怎么在網上刷題&#xff0c;以及在哪里刷題。 1.介紹平臺&#xff08;在哪刷題&#xff09;&#xff1a; 1.牛客牛客網https://www.nowcoder.com/ &#xff1a;有許多面試題&#xff0c;也有許多供學習者練習的題 2.洛谷洛谷 …

k8s面試題總結(十四)

什么是Helm&#xff1f; Helm是一個k8s的包管理工具&#xff0c;它簡化了應用程序在k8s集群中的部署&#xff0c;管理和維護。類似于rpm包和yum之間的關系。 K8s傳統方式&#xff1a;類似于rpm安裝包的方式&#xff0c;逐步進行安裝&#xff0c;遇到依賴還得解決依賴問題 he…

物理服務器的作用都有哪些?

物理服務器是一種高性能的專用服務器&#xff0c;一般會被運用在大型組織和云計算環境當中&#xff0c;可以為企業和用戶提供數據存儲和計算資源&#xff0c;幫助企業提高整體的工作效率和快速實現業務目標。 物理服務器有著較高的安全性&#xff0c;企業可以將重要的數據信息備…