一般查找 (顺序查找)

顺序查找:在一个 已知无序队列中找出 与 给定关键字相同的数的具体位置。
原理是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字相同的数为止。复杂度为o(n).

#include<stdio.h>
int fun(int a[],int n,int x)
{
   int i;
   for(i=0;i<n;i++)
{
      printf("该点是%d\n",a[i]);
if(a[i]==x)
      {         puts("找到\n");     return(i);     }//查找到,返回位置
}
if(i==n)     return(-1);//没有找到,返回-1
}

main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int p,m;
scanf("%d",&p);
printf("你要查找%d.\n",p);
m=fun(a,10,p);
if(m==-1) printf("没有找到啊\n");
}

#include <stdio.h>

//顺序查找:
int search1(int a[],int x,int n) //x为要查找的元素,n为数组长度
{
    int i;
    for (i=0;i<n;i++)
    {
        if (a[i]==x)
            return i;
    }
    return -1;
}

int main()
{
    int i,a[10],x;
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);

    printf("请输入要查找的元素" );
    scanf("%d",&x);

    if (search1(a,x,10)!=-1)printf("查找的元素在数组中的位置为%d.\n",search1(a,x,10));
    else printf("该元素不在数组中\n");
    return 0;
}

#include <stdio.h>

//顺序查找:
int search1(int a[],int x,int n) //x为要查找的元素,n为数组长度
{
int i;
for (i=0;i<n;i++)
{
if (a[i]==x)
return i;
}
return -1;
}

int main()
{
int i,a[10],x;
for (i=0;i<10;i++)
scanf("%d",&a[i]);

printf("请输入要查找的元素" );
scanf("%d",&x);

if (search1(a,x,10)!=-1)printf("查找的元素在数组中的位置为%d.\n",search1(a,x,10));
else printf("该元素不在数组中\n");
return 0;
}

/*顺序查找:*/
#include<stdio.h>
int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    int i,x,y;
    printf("输入你要查找的数:\n");
    scanf("%d",&x);
    y=0;                    //标记是否已找到,y=1表是找到了,y=0表示没找到
    for (i=0;i<10;i++)           //循环,把x和数组中的元素一个个比较
    {
        if (x==a[i])                 //如果x=a[i]说明已经找到
        {
            y=1;        //把y变成1,说明已经找到了
            printf("你要查找的数%d在第个%d位置\n",x,i+1); //输出找到的相关信息
            break; //跳出循环
        }
    }
    if (y==0)printf("无法找到你要查找的数\n"); //y=0表示找不到
}

输出满足条件数组元素   下标i

#include <stdio.h>
int main ( )
{
int i,x, a[11]={ -1,12,23,42,56,65,81,92,100,109} ;
scanf("%d",&x);
for (i=0;i<10;i++)
if (a[i]>=x) printf("元素下标 %d\n",i);

return 0;
}

输出满足条件数组元素  的 位置   第几个元素

#include <stdio.h>
int main ( )
{
int i,x, a[11]={ -1,12,23,42,56,65,81,92,100,109} ;
scanf("%d",&x);
for (i=0;i<10;i++)
if (a[i]>=x) printf("第 %d 个元素\n",i+1);

return 0;
}

输出满足条件的数组元素

#include <stdio.h>
int main ( )
{
int i,x, a[11]={ -1,12,23,42,56,65,81,92,100,109} ;
scanf("%d",&x);
for (i=0;i<10;i++)
if (a[i]>=x) printf("元素 %d\n",a[i]);

return 0;
}

一般查找 (顺序查找)

时间: 2024-08-04 23:56:32

一般查找 (顺序查找)的相关文章

转:线性表的查找-顺序查找

转自:http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.2.1.htm 顺序查找(Sequential Search)     在表的组织方式中,线性表是最简单的一种.顺序查找是一种最简单的查找方法. 1.顺序查找的基本思想    基本思想是:从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键宇和给定值K相比较.若当前扫描到的结点关键字与K相等,则查找成功:若扫描结束后,仍未找到关键字等于K的结点,则

Java查找算法(二): 顺序查找

[ 什么是顺序查找 ]  顺序查找又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个或最后一个记录开始,逐个和给定的值比较,如相等则查找成功:如直到最后一个值仍不等时,则表中没有所查的记录,查找不成功. [ Java实现顺序查找 ]  public class SequentialSearch { public static void main(String[] args) { Integer target = 6; Integer[] iArr = { 3, 2, 6, 8, 5,

算法:顺序查找与折半查找

资料摘自:<数据结构c++语言描述> typedef int DataType; //顺序查找算法 //用顺序查找在n元数组list中查找与key等值的元素,返回该数组元素的下标 //若未找到,则返回-1 int SeqSearch(DataType List[], int n, DataType key) { for(int i = 0; i < n; i++) { if(List[i] == key) { return i; } } return -1; } /* *顺序查找的复杂度

算法练习--顺序查找

背景: 本来是想琢磨琢磨别的东西,前两天开始使用xdebug+webgrind.感觉用着挺方便的,不过还只是初学,很多功能尚未了解.没有方向做一些东西,那就继续打打基础,今天开始看查找这一块. 正题: 顺序查找——顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置.原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率低下. 概念说的很清楚,缺点也很容易看出来,直接贴代码(我这里是以顺序表为例). <?php /** * 线性表

顺序查找和二分法查找

1.顺序查找 顺序查找又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录:如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等时,则表中没有所查的记录,查询不成功. 流程:输入要查找的数,查找,判断输出 举例: 1 static void Main(string[] args) 2 { 3 //查找 4 int[] a = new int[8] {2,9,8,1

查找之一顺序查找

一. 1 public class Sequential_SearchDemo01 { 2 static int[] num = {1,3,4,6}; 3 public static void main(String[] args) { 4 int key = 7; 5 boolean x = Sequential_Search(key); 6 System.out.println(x); 7 } 8 private static boolean Sequential_Search(int ke

算法-符号表的实现(顺序查找和二分查找)

符号表是一种存储键值对的数据结构,支持两种操作插入和查找,就是将一组新的键值对存入表中然后根据给定的键得到对应的值,在编程语言中常用Dictionary原理类似.符号表是一种典型的抽象数据结构,在生活之中应用的场景也很多,可以根据钥匙开门,域名解析的时候的IP地址查询,字典和图书的简介和页数,key和value是密不可分的,通过key我们可以很快找到我们需要的value. 无序链表的顺序查找 主要通过Node节点存储数据,之前的博客中有关于链表的实现,详情可参考之前的博客,代码有注释就解释太多了

《数据结构、算法与应用》8.(顺序查找数组中第一个出现指定元素的位置)

最近在读<数据结构.算法与应用>这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢 8. 从左至右检查数组a[0:n-1]中的元素,以查找雨x相等的那些元素.如果找到一个元素与x相等,则函数返回x第一次出现所在的位置.如果在数组中没有找到这样的元素,函数则返回-1. // // main.cpp // Test_08 // // Created

顺序查找

顺序查找属于查找中较容易的一个方法,且对数据是否已经排序没有要求,是很常用的一个查找算法. 但缺点是必须一个一个数字进行比较查找,查找所需步骤可能较多. 顺序查找算法的思想是,将目标与待查找数据进行比较,若发现与目标数据相同的数据,则查找停止, 返回此时被找到的数据的位置. // 算法设计 顺序查找 # include <stdio.h> int FindBySeq(int *ListSeq, int ListLength, int KeyData) // ListLength 表示数组长度

算法——蛮力法之顺序查找和蛮力字符串匹配

接着昨天的选择排序和冒泡排序之后,今天来实现一下顺序查找和蛮力字符串匹配两个算法. 顺序查找就是将给定的查找键和列表周玲的每个元素进行比较,直到找到一个匹配成功的元素返回该元素下标,查找成功,或者查找整个列表二没有匹配元素,查找失败.这里记录一下限位器版顺序查找方法.限位器就是指将查找键添加到列表最后,这样在查找的过程中,不用再每次都判断是否到达列表尾部来判断查找是否失败,而是在查找结束后,判断匹配元素下标是否小于n(假设列表有n个元素)来判断查找是否成功.下面是限位器版顺序查找算法: 限位器版