1. 程式人生 > >SDUT-3378_數據結構實驗之查找六:順序查找

SDUT-3378_數據結構實驗之查找六:順序查找

開始 重復 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_數據結構實驗之查找六:順序查找