c 排序與檢索 例題大理石(學習)

2021-09-18 08:00:50 字數 656 閱讀 4553

問題描述

現有n個大理石,每個大理石上寫了乙個非負整數、首先把各數從小到大排序;然後回答q個問題。每個問題問是否有乙個大理石寫著某個整數x,如果是,還要回答哪個大理石上寫著x。排序後的大理石從左到右編號為1~n。

輸入大理石數量和需要回答問題數量,然後輸入大理石上的每個非負整數,接著輸入x

樣例輸入:

4 12 3 5 1

55 2

1 3 3 3 1

2 3樣例輸出:

case# 1:

5 found at 4

case# 2:

2 not found

3 found at 3

分析:要用到排序,還有查詢。用lower_bound查詢正好返回位址。lower_bound返回的是序列中第乙個大於或等於查詢值的的位址,用獲得位址減去陣列位址就是偏移量,即為第幾號元素,再看該元素是否等於查詢值就可以了。

#include #include using namespace std;

int main()

sort(a,a+n);

while(q--)

}return 0;

}

排序與檢索(大理石在哪兒)

題目 現有n個大理石,每個大理石上寫了乙個非負整數。首先把各數從小到大排序,然後回答q個問題。每個問題問是否有乙個大理石寫著某個整數x,如果是,還要回答哪個大理石上寫著x。排序後的大理石從左到右編號為1 n。在樣例中,為了節約篇幅,所有大理石上的數合併到一行,所有問題也合併到一行。樣例輸入 4 12...

c 排序與檢索函式

問題描述 現有n個大理石,每個大理石上寫了乙個非負整數 首先把各數從小到大排序 然後回答q個問題。每個問題問是否有乙個大理石寫著某個整數x,如果是,還要回答哪個大理石上寫著x。排序後的大理石從左到右編號為1 n。輸入大理石數量和需要回答問題數量,然後輸入大理石上的每個非負整數,接著輸入x 樣例輸入 ...

學習筆記 C語言氣泡排序與選擇排序演算法

氣泡排序 include include include intmain void int i j,tmp 0,n n sizeof a sizeof a 1 printf 總共有 d個數字 n printf 排序前 n for i 0 i for i 0 i 5 i printf 排序後 n fo...