軟體設計師 第三章資料運算(查詢)

2021-10-21 10:22:50 字數 1236 閱讀 2203

一、順序查詢

c++模板

bool search(int l, int r)
二、二分查詢
模板1:

將待查詢區間分成 [l, mid] 和 [mid + 1, r]

c++**
int demo1(int l, int r)
模板2:

將待查詢區間分成 [l, mid - 1] 和 [mid, r]

c++**
int demo2(int l, int r)
三、雜湊查詢
常用的減少雜湊衝突的方法為 :

拉鍊法開放定址法

乙個例題

維護乙個集合,支援如下幾種操作:

「i x」,插入乙個數x;

「q x」,詢問數x是否在集合**現過;

現在要進行n次操作,對於每個詢問操作輸出對應的結果。

輸入格式

第一行包含整數n,表示運算元量。

接下來n行,每行包含乙個操作指令,操作指令為」i x」,」q x」中的一種。

輸出格式

對於每個詢問指令「q x」,輸出乙個詢問結果,如果x在集合**現過,

則輸出「yes」,否則輸出「no」。

每個結果佔一行。

資料範圍

1 ≤n

≤105

1 ≤ n ≤ 10^5

1≤n≤105−1

09≤x

≤109

−10^9≤x≤10^9

−109≤x

≤109

思路:

題目要求手寫乙個雜湊表,要求可以插入資料,查詢某數是否存在

c++**
#include#includeusing namespace std;

const int n = 200003, null = 0x3f3f3f3f;

int n;

int h[n];

//採用開放定址法,插入x時找到未被使用的乙個單元存放

//這樣做法一般空間開到資料範圍的2倍,即可大大減少衝突

int find(int x)

return k;

}int main()

}return 0;

}

軟體設計師考試 第三章 資料結構 線性結構

二 棧和佇列 2 棧的儲存結構 2.佇列 2 佇列的儲存結構 3 佇列的應用 三 串 2.串的儲存結構 3.串的模式匹配 線性結構是一種基本的資料結構,主要用於對客觀世界中具有單一前驅和後繼的資料關係進行描述。特點是資料元素間呈現一種線性關係,即元素 乙個接乙個排列 常採用順序儲存和鏈式儲存。乙個線...

軟體設計師中級之第三章 資料庫系統

建議關注收藏,持續更新中 檢視級 外模式 表級 概念模式 檔案級 內模式 外模式 概念模式對映 概念模式 內模式對映 需求分析 形成需求說明書,資料流圖,資料字典 概念結構設計 er模型 邏輯結構設計 物理設計 長方形 實體 橢圓 屬性 菱形 聯絡 長方形加兩豎線 弱實體 乙個實體轉換為乙個關係 聯...

第三章 軟體計畫

上邊這幅圖表示軟體計畫的幾大項,下邊我逐個為大家做一下詳細的講述 一,問題定義 1,定義的內容 問題的背景,開發系統的現狀,開發的條件與理由,總體要求,問題的性質,型別轉換,目標,開發條件,環境要求等 2,定義的步驟 需要系統分析員到問題現場,1,聽取使用者對系統的要求 2,調查開發的背景理由 3,...