SDUT-3378_數據結構實驗之查找六:順序查找
阿新 • • 發佈:2018-12-20
開始 重復 mem 8 8 註意 str lib NPU return
數據結構實驗之查找六:順序查找
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
在一個給定的無序序列裏,查找與給定關鍵字相同的元素,若存在則輸出找到的元素在序列中的位序和需要進行的比較次數,不存在則輸出"No",序列位序從1到n,要求查找從最後一個元素開始,序列中無重復元素。
Input
連續多組數據輸入,每組輸入數據第一行首先輸入兩個整數 n (n <= 10^6) 和 k (1 <= k <= 10^7),n是數組長度,k是待查找的關鍵字,然後連續輸入n個整數 ai (1 <= ai <= 10^7),數據間以空格間隔。
Output
若存在則輸出元素在序列中的位序和比較次數,不存在則輸出No。
Sample Input
5 9
4 6 8 9 13
7 4
-1 3 2 5 4 6 9
20 90
4 6 8 9 13 17 51 52 54 59 62 66 76 78 80 85 88 17 20 21
Sample Output
4 2
5 3
No
題解:順序查找,因為只用查找一個,所以在輸入的時候順便查找出來就好了,註意他是要求倒著查找,所以比較次數應該是(n-i+1)
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int k,n,i,t,a; while(scanf("%d%d",&n,&k)!=EOF) { a = 0; for(i=1;i<=n;i++) { scanf("%d",&t); if(t==k) a = i; } if(!a) printf("No\n"); else printf("%d %d\n",a,n-a+1); } return 0; }
SDUT-3378_數據結構實驗之查找六:順序查找