F - 数据结构实验之查找六:顺序查找
生活随笔
收集整理的這篇文章主要介紹了
F - 数据结构实验之查找六:顺序查找
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Description
在一個(gè)給定的無序序列里,查找與給定關(guān)鍵字相同的元素,若存在則輸出找到的元素在序列中的位序和需要進(jìn)行的比較次數(shù),不存在則輸出"No",序列位序從1到n,要求查找從最后一個(gè)元素開始,序列中無重復(fù)元素。
Input
連續(xù)多組數(shù)據(jù)輸入,每組輸入數(shù)據(jù)第一行首先輸入兩個(gè)整數(shù) n (n <= 10^6) 和 k (1 <= k <= 10^7),n是數(shù)組長(zhǎng)度,k是待查找的關(guān)鍵字,然后連續(xù)輸入n個(gè)整數(shù) ai (1 <= ai <= 10^7),數(shù)據(jù)間以空格間隔。
Output
若存在則輸出元素在序列中的位序和比較次數(shù),不存在則輸出No。
Sample
Input
Output
4 2 5 3 NoHint
本題數(shù)據(jù)量較大,如果你使用 C++ 的 cin 讀入,建議在 main 函數(shù)開頭加入一行 ios::sync_with_stdio(false); 以防止讀入超時(shí)。
#include<bits/stdc++.h>using namespace std;int a[1000010];int main() {ios::sync_with_stdio(0);int n, k;while(cin >> n >> k){int sum = 0, t = -1;for(int i = 1; i <= n; i++)cin >> a[i];for(int i = n; i >= 1; i--){sum++;if(a[i] == k){t = i;break;}}if(t == -1)cout << "No" << endl;elsecout << t << " " << sum << endl;}return 0; }總結(jié)
以上是生活随笔為你收集整理的F - 数据结构实验之查找六:顺序查找的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: I - 查找练习 hash——出现过的数
- 下一篇: K - TimesIsMoney(查询)