查找學習筆記

1、靜態查找表

以下查找的索引均從1開始

(1)順序查找(帶哨兵)

#include<iostream>
#include<vector>using namespace std;int search(vector<int> arr, int key) {arr[0] = key;int i;for (i = arr.size() - 1; arr[i] != key; i--);return i;
}int main()
{int n;cin >> n;vector<int> list(n+1);for (auto i = list.begin() + 1; i != list.end(); i++) {cin >> *i;}int t;cin >> t;while (t--) {int key;cin >> key;int check = search(list, key);if (check != 0) {cout << check << endl;}else {cout << "error" << endl;}}return 0;
}

(2)折半查找(二分查找)

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;int search(vector<int> arr, int key) {int beg = 1, end = arr.size() - 1;int mid;while (beg <= end) {mid = (end + beg) / 2 ;if (arr[mid] == key) break;else if (arr[mid] < key) {beg = mid + 1;}else end = mid - 1;}if (arr[mid] == key)return mid;else return 0;
}int main()
{int n;cin >> n;vector<int> list(n+1);for (auto i = list.begin() + 1; i != list.end(); i++) {cin >> *i;}int t;cin >> t;while (t--) {int key;cin >> key;int check = search(list, key);if (check != 0) {cout << check << endl;}else {cout << "error" << endl;}}return 0;
}

擴展:次優查找樹

考慮每個元素被查詢的概率不同,概率高的元素應盡早被查詢

轉載:查找算法 | 靜態樹表(次優查找樹)詳細分析-CSDN博客

(3)索引順序查找(分塊查找)

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;struct Ind {int maxnum;int start;
};int search(vector<int> list, vector<Ind> ind, int key, int &time){ int i;for (i = 0; i != ind.size(); i++) {time++;if (key <= ind[i].maxnum) break;}if (i == ind.size()) return -1;int j = ind[i].start;for (; j <= list.size() - 1 && list[j] <= ind[i].maxnum; j++) {time++;if (list[j] == key)break;}if (j > list.size() - 1 || list[j] != key) return -1;else return j;
}int main()
{int n;cin >> n;vector<int> list(n + 1);for (auto i = list.begin() + 1; i != list.end(); i++) {cin >> *i;}// 構建索引表int m;cin >>  m;vector<Ind> ind(m);int tmp = 1;for (auto& i : ind) {cin >> i.maxnum;i.start = tmp;tmp += n / m;}int t;cin >> t;while (t--) {int key;cin >> key;int time = 0; // time記錄查詢次數int check = search(list, ind, key, time);if (check == -1) {cout << "error" << endl;}else {cout << check << "-" << time << endl;}}return 0;
}

應用:美團外賣訂單中,按同一時刻來對訂單分塊,但同一時刻中的訂單間是無序的。

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

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

相關文章

代碼隨想錄 860. 檸檬水找零

題目 在檸檬水攤上&#xff0c;每一杯檸檬水的售價為 5 美元。顧客排隊購買你的產品&#xff0c;&#xff08;按賬單 bills 支付的順序&#xff09;一次購買一杯。 每位顧客只買一杯檸檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必須給每個顧客正確找零&#xf…

python opencv -模板匹配

python opencv -模板匹配 模板匹配就是&#xff0c;我們現有一個模板和一個圖片&#xff0c;然后&#xff0c;在這個圖片中尋找和模板近似的部分。 在opencv 中主要通過cv2.matchTemplate這個函數去實現。 下面我們先看一下&#xff0c;模板圖片和需要匹配的圖片&#xff1a…

(Matalb時序預測)GA-BP遺傳算法優化BP神經網絡的多維時序回歸預測

目錄 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 亮點與優勢&#xff1a; 二、實際運行效果&#xff1a; 三、部分代碼 四、本文代碼數據說明手冊分享&#xff1a; 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 本代碼基于Matalb平臺編譯&am…

Spring IOC 和 AOP

Spring IOC 什么是 IoC ? IoC &#xff08;Inversion of Control 控制反轉&#xff09;是一種設計思想&#xff0c;而不是一個具體的技術實現。IoC 的思想就是將原本在程序中手動創建對象的控制權&#xff0c;交由給 Spring 框架來管理。 為什么叫控制反轉&#xff1f; 控制…

unsigned詳講(干貨滿滿)

前言&#xff1a;過年偷懶了(●ˇ?ˇ●)&#xff0c;但是年后開學了一定要恢復學習狀態&#xff0c;在復習加繼續學習的途中&#xff0c;我發現對于unsigned關鍵字的掌握并不是很熟練&#xff0c;于是翻閱了各個大佬的博客以及書籍&#xff0c;總結了對于unsigned的一些知識點…

數據結構與算法編程題18

循環隊列相關代碼。 #include <iostream> using namespace std;#define Maxsize 100 #define ERROR 0 #define OK 1 typedef int Elemtype; typedef struct Queue {Elemtype data[Maxsize];int front;int rear; }Queue;void Init_Queue(Queue &Q) {Q.front Q.rear …

P9 C++類

目錄 01 類是什么 02 如何創建類 03 方法 后話 本期我們要講的是 C 中的類。 我們終于講到了面向對象編程&#xff0c;這是一種非常流行的編程方式&#xff0c;面向對象編程實際上只是一種你可以采用的編寫代碼的方式&#xff0c;其他語言例如 C#、Java 這些主要是面向對象…

白嫖CTG4.0

大家好&#xff0c;到點了我來給各位大佬獻策CTG&#xff0c;不是花錢買不起&#xff0c;而是免費更有性價比&#xff0c;哈哈哈不調侃了我們自此開始正文&#xff0c;咱們主打的就是一個分享是一種態度 當然我更希望大家支持國產對國產有自己的信心&#xff08;文心一言&…

Git常用命令詳細總結,更適合中國寶寶體質

文章目錄 代碼倉庫創建倉庫1.進入需要創建代碼庫的文件夾2.創建/切始化倉庫3.關聯遠程倉庫拉取遠程倉庫到本地 添加文件到倉庫1.查看工作區狀態2.添加文件到暫存區3.提交到本地倉庫4.對比工作區文件變化 倉庫配置1.配置全局用戶名和郵箱2.配當前倉庫用戶名和郵箱3.查看Git全局配…

Selenium中常用的JS操作總結

? 目錄 前言&#xff1a; JS相關操作 JS Xpath定位 獲取單個元素 獲取元素集合 文本輸入 獲取坐標 獲取瀏覽器窗口的內部高度 獲取瀏覽器窗口的內部寬度&#xff1b; 坐標計算 設置樣式 設置窗口大小 類數組對象arguments JQuery選擇器 jQuery 選擇器 jQuery …

多模態——使用stable-video-diffusion將圖片生成視頻

多模態——使用stable-video-diffusion將圖片生成視頻 0. 內容簡介1. 運行環境2. 模型下載3. 代碼梳理3.1 修改yaml文件中的svd路徑3.2 修改DeepFloyDataFiltering的vit路徑3.3 修改open_clip的clip路徑3.4 代碼總體結構 4. 資源消耗5. 效果預覽 0. 內容簡介 近期&#xff0c;…

Linux上安裝Redis

案例中Linux版本為CentOS7.9&#xff0c;安裝目錄為 /root/software/ 1、使用 wget 命令從官網下載安裝包 wget https://github.com/redis/redis/archive/7.2.3.tar.gz2、解壓縮 tar -xzf 7.2.3.tar.gz3、進入解壓后的目錄 cd redis-7.2.34、 編譯和安裝Redis make make i…

npm中,你不了解的.npmrc文件

原文鏈接&#xff1a;npm中&#xff0c;你不了解的.npmrc文件 寫在前面 對于寫JS的程序員來說&#xff0c;可能沒有人不知道npm&#xff0c;但是有些同學對他的配置文件(即.npmrc文件)并不了解。結合我的學習心得&#xff0c;寫一篇博客跟大家分享一些該配置文件的知識。 .np…

理解CLIP模型

1.簡介 學習深度學習必看CLIP&#xff01;論文鏈接arxiv.org/pdf/2103.00020v1.pdf。 簡單來說就是傳統的分類任務被用來預測指定的類別&#xff0c;有監督訓練限制了模型的通用性和可用性&#xff0c;并且需要帶有標簽的數據來訓練&#xff0c;該篇論文就想直接從原始文本中…

Navicat 技術指引 | 適用于 GaussDB 的用戶權限設置

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持對 GaussDB 主備版的管理和開發功能。它不僅具備輕松、便捷的可視化數據查看和編輯功能&#xff0c;還提供強大的高階功能&#xff08;如模型、結構同步、協同合作、數據遷移等&#xff09;&#xff0c;這…

Spring 七大組件

文章目錄 Spring 七大組件 Spring 七大組件 核心容器(Spring core) 核心容器提供Spring框架的基本功能。Spring以bean的方式組織和管理Java應用中的各個組件及其關系。Spring使用BeanFactory來產生和管理Bean&#xff0c;它是工廠模式的實現。BeanFactory使用控制反轉(IOC)模式…

(Matalb分類預測)GA-BP遺傳算法優化BP神經網絡的多維分類預測

目錄 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 亮點與優勢&#xff1a; 二、實際運行效果&#xff1a; 三、部分代碼&#xff1a; 四、本文代碼數據說明手冊分享 一、程序及算法內容介紹&#xff1a; 基本內容&#xff1a; 本代碼基于Matalb平臺編譯&am…

Flink Flink中的分流

一、什么是分流 所謂“分流”&#xff0c;就是將一條數據流拆分成完全獨立的兩條、甚至多條流。也就是基于一個DataStream&#xff0c;定義一些篩選條件&#xff0c;將符合條件的數據揀選出來放到對應的流里。 二、基于filter算子的簡單實現分流 其實根據條件篩選數據的需求…

面了一個4年經驗的測試工程師,自動化都不會也要15k,我也是醉了····

&#x1f4e2;專注于分享軟件測試干貨內容&#xff0c;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01;&#x1f4e2;交流討論&#xff1a;歡迎加入我們一起學習&#xff01;&#x1f4e2;資源分享&#xff1a;耗時200小時精選的「軟件測試」資…

表單考勤簽到作業周期打卡打分評價評分小程序開源版開發

表單考勤簽到作業周期打卡打分評價評分小程序開源版開發 表單打卡評分 表單簽到功能&#xff1a;學生可以通過掃描二維碼或輸入簽到碼進行簽到&#xff0c;方便教師進行考勤管理。 考勤功能&#xff1a;可以記錄學生的出勤情況&#xff0c;并自動生成出勤率和缺勤次數等統計數…