目录

一、顺序表查找

二、顺序表查找优化(重点)

总代码


一、顺序表查找

从头到尾或从尾到头查找。

//顺序表查找(需要判断两次)
int ListSearch(char ch)
{for (int i = 0; i < strlen(str); i++)                    //一次判断{if (str[i] == ch)                                  //二次判断return i;}return -1;
}

顺序查找虽然简单,但是缺点也比较明显,就是效率比较低,两次判断,接下来对齐进行优化,让它变成一次判断:

二、顺序表查找优化(重点)

关键思想就是:设置哨兵

首或尾元素作为哨兵,判断到它了可以直接退出,不用外面的for循环一次次判断

//顺序表查找优化(数据量大的时候有奇效)(只需要判断一次,比先前效率快一倍)
int ListSearch_Optimize(char ch)
{int i = -1;str[strlen(str)] = ch;        //设置哨兵while (str[++i] != ch);        //不为哨兵,则继续循环(只需要判断一次,比先前效率快一倍)return i;
}

总代码

//顺序表查找及优化
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string>char str[20];//输入
char Input()
{char ch = ' ';printf("请输入一串数组:\n");for (int i = 0; i < 20 && ch != '\n'; i++){scanf("%c", &ch);str[i] = ch;}printf("请输入您想要查找的字符:");scanf("%c", &ch);return ch;
}//顺序表查找(需要判断两次,效率较低)
int ListSearch(char ch)
{for (int i = 0; i < strlen(str); i++)                    //一次判断{if (str[i] == ch)                                  //二次判断return i;}return -1;
}//顺序表查找优化(数据量大的时候有奇效)(只需要判断一次,比先前效率快一倍)
int ListSearch_Optimize(char ch)
{int i = -1;str[strlen(str)] = ch;        //设置哨兵while (str[++i] != ch);        //不为哨兵,则继续循环(只需要判断一次,比先前效率快一倍)return i;
}int main()
{char ch;ch = Input();             //输入printf("顺序表查找结果:    %d\n", ListSearch(ch));            //顺序表查找printf("顺序表优化查找结果:%d\n", ListSearch_Optimize(ch));  //顺序表查找优化return 0;
}

参考资料

https://blog.csdn.net/qq_44725331/article/details/115411296?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162876655416780262576379%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162876655416780262576379&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-115411296.first_rank_v2_pc_rank_v29&utm_term=%E6%8A%98%E5%8D%8A%E6%9F%A5%E6%89%BE&spm=1018.2226.3001.4187

数据结构与算法(8-1)顺序表查找及优化相关推荐

  1. 顺序表查找及其优化(Java)

    顺序表查找(线性查找): 1 private static void Ordersearch(int[] arr,int num) { 2 for (int i = 0; i < arr.len ...

  2. 21级数据结构与算法实验1——顺序表

    7-1 顺序表的建立及遍历 分数 30 作者 陈晓梅 单位 广东外语外贸大学 读入n值及n个整数,建立顺序表并遍历输出. 输入格式: 读入n及n个整数 输出格式: 输出n个整数,以空格分隔(最后一个数 ...

  3. 数据结构25 ————顺序表查找

    数据结构25 ----顺序表查找 一. 目录 文章目录 数据结构25 ----顺序表查找 一. 目录 二. 顺序表查找 三. 顺序表查找代码 1.基本算法 2.进行优化 四. 参考资料 二. 顺序表查 ...

  4. 索引顺序表查找算法(分块查找)

    算法背景 有时候,可能会遇到这样的表:整个表中的元素未必有序,但若划分为若干块后,每一块中的所有元素均小于(或大于)其后面块中的所有元素.我们称这种为分块有序. 对于分块有序表的查找 首先,我们需要先 ...

  5. 数据结构例1.已知顺序表L的长度为n,试编写算法实现在顺序表中删除值为elem的数据元素

    //已知顺序表L的长度为n,试编写算法实现在顺序表中删除值为elem的数据元素 //(其中n与elem从键盘输入) # include <iostream> # include <s ...

  6. 带有哨兵的顺序表查找和二分法查找(折半查找)(java)代码+说明

                                         带有哨兵的顺序表查找和二分法查找(折半查找)(java)代码+说明 一:带有哨兵的顺序表查找 1.算法设计:          ...

  7. java数据结构实验一顺序表,java数据结构实验代码之升序顺序表

    java数据结构实验代码之升序顺序表 数据结构实验报告 学院:管理学院 班级:13电子商务(1)班 姓名:廖秋君 学号:3213004779 2014年 10月 23 日 目录 一.需求分析----- ...

  8. 数据结构C语言实现动态顺序表

    动态顺序表的C语言实现: 正文开始@Assassin 目录: 动态顺序表的C语言实现: ==什么是顺序表?== 1. 定义顺序表结构体: 2. 初始化顺序表: 3. 销毁顺序表: 4. 打印顺序表: ...

  9. c语言实现的sin cos查找表_考研数据结构之C语言实现顺序表的增、删、查(粘贴即可运行)...

    注释详细方便理解 注释详细方便理解 注释详细方便理解 运行效果 使用IDE 环境配置 代码 #pragma clang diagnostic push#pragma ide diagnostic ig ...

最新文章

  1. 静态路由和默认路由的配置实例
  2. 物联网背后的网络安全风险
  3. nable to execute dex: Multiple dex files define Lcom/chinaCEB/cebActivity/R
  4. golang 文件 文件夹 创建 读取 移动 复制 写入 遍历
  5. 画瀑布图_常见的招财风水画之含义
  6. Strange Shuffle CodeForces - 1471E(交互题)
  7. PowerDesigner从数据库导入
  8. 01json转字符串
  9. 为Eclipse安装功能扩展插件
  10. django-模型类的修改-外键
  11. Sublime Text 3配置与vim模式(待完整)
  12. java p2p实例_java文件p2p传输
  13. 不装oracle客户端plsql,不安装Oracle客户端使用PLSQL
  14. 显示当前服务器的ip,linux查看当前服务器ip地址 命令
  15. 树莓派linux led字符设备驱动(互斥)
  16. python 下载qq群文件_利用多线程快速下载腾讯QQ群文件的方法
  17. Asp.net 路由详解
  18. 百度的春晚战事:如何扛住腾讯、阿里都宕机的量?
  19. 深度学习--综述前言
  20. 记一次完整的用户测试

热门文章

  1. android 调用裁切板
  2. This Gradle plugin requires a newer IDE able to request IDE model level 3.For Android Studio this
  3. android R文件丢失解决方法
  4. [转]几种最短路径算法的比较
  5. 关于HttpClient上传中文乱码的解决办法
  6. IntelliJ IDEA下自动生成Hibernate映射文件以及实体类
  7. linux shell下获取cpu温度
  8. [笔记]C#基础入门(八)——C#标识符的命名规则
  9. HDOJ 1236 排名(练耐心题)
  10. springmvc3.2+spring+hibernate4全注解方式整合(一)