线性表(a1,a2,a3……an)中的元素递增有序且按顺序存储于计算机中,设计一算法,在表中查找数组为x的元素,若找到则将其与后继元素位置交换,找不到则插入x并依然递增有序
思路:为了加快查找速度,这里采用折半查找法

#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 20typedef struct
{int *elem;int length;int listsize;
}SqList;bool InitList_Sq(SqList &L);
void PrintElem_Sq(SqList L);
void SearchExchangeInsert(SqList &L, int x);
int main()
{int x;SqList L;InitList_Sq(L);L.elem[0] = 0;L.elem[1] = 2;L.elem[2] = 4;L.elem[3] = 6;L.elem[4] = 8;L.length = 5;printf("请输入要在顺序表中查找的元素x:");scanf("%d", &x);SearchExchangeInsert(L, x);PrintElem_Sq(L);return 0;
}
bool InitList_Sq(SqList &L)
{L.elem =(int*)malloc(LISTINCREMENT*sizeof(int));if(!L.elem)return false;L.length = 0;L.listsize = LIST_INIT_SIZE;return true;
}
void PrintElem_Sq(SqList L)
{if(L.length == 0)printf("顺序表为空");elsefor(int i = 0; i < L.length; i ++)printf("%d ", L.elem[i]);
}
void SearchExchangeInsert(SqList &L, int x)//二分查找
{int low = 0,high = L.length-1, mid;int i;while(low <= high){mid = low + (high - low) / 2;if(L.elem[mid] == x) break;else if (L.elem[mid] < x)low = mid + 1;else high = mid - 1;//?}if (L.elem[mid] == x && mid != L.length-1){int t = L.elem[mid];L.elem[mid] = L.elem[mid + 1];L.elem[mid + 1] = t;}if (low > high){L.length ++;for (i = L.length-1; i > high; i--)L.elem[i + 1] = L.elem[i];L.elem[i + 1] = x;}
}

在表中查找数组为x的元素相关推荐

  1. c语言编程顺序查找法,建立顺序表,实现顺序表的遍历,在顺序表中查找关键字为e的元素(c语言编写)...

    满意答案 qqea12345 推荐于 2017.11.24 采纳率:45%    等级:7 已帮助:1062人 楼主我大二 也刚上数据结构耶 这是我上实验课的时候用链表写的 还没交老师看  功能还差一 ...

  2. php多个表中查找数据_HeidiSQL 免费的可视化数据库管理工具

    HeidiSQL是一款免费的软件,并且易于学习和使用.HeidiSQL让你从数据库内可视化的读写数据.结构体.它支持MariaDB.MySQL.Microsoft SQL.PostgreSQL等数据库 ...

  3. 如何在JavaScript / jQuery中查找数组是否包含特定字符串? [重复]

    本文翻译自:How to find if an array contains a specific string in JavaScript/jQuery? [duplicate] This ques ...

  4. 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居

    在数组中查找第k个最大元素 Problem statement: 问题陈述: Given an array of elements, find the nearest (on the right) g ...

  5. c++获取数组长度查找算法_在C ++中查找数组长度

    c++获取数组长度查找算法 介绍 (Introduction) In this article, we are going to learn about the various ways follow ...

  6. SQL消费表中查找所有用户最后一条消费记录

    SQL消费表中查找所有用户最后一条消费记录 5 SQL消费表中查找所有用户最后一条消费记录 BussnissLogs表中字段BussnissLogsID(消费流水ID),UserID(用户ID),Ha ...

  7. mysql 找表重复数据,mysql 数据表中查找重复记录

    mysql 数据表中查找重复记录 复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name ha ...

  8. php在指定html元素中输出,如何从PHP中的数组输出html svg元素?

    我有svg元素的数组.我必须从列出的阵列中打印出来.我试图打印它,但它不工作.请指导我如何获取浏览器上呈现的svg元素. actualy有阵列中的其他项目我没有表现出bcoz的字符限制如何通过SVG标 ...

  9. c语言递增20,2020-07-20(C语言)数据结构-在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素...

    //在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素,例如:(7,10,10,21,30,42,42,51,70)将变为(7,10 ...

最新文章

  1. 统计s=hello alex alex hello haiyan cc haiyan com中每个单词的个数
  2. 2018 SaaS应用大会 掀起SaaS应用新浪潮
  3. MySQL中show语法使用总结
  4. Visual Studio 2013开发 mini-filter driver step by step (11) driver 签名
  5. 解决9.png malformed以及libpng warning: iCCP
  6. npm教程:如何查看TypeScript版本、卸载TypeScript和安装TypeScript
  7. python简单连接数据库
  8. vue sync用法
  9. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
  10. hutool的定时任务不支持依赖注入怎么办_可调度定时任务在SpringBoot中的实践
  11. 多层full-connect 神经网络测试
  12. Security+ 学习笔记27 灾后恢复
  13. 2022 年要了解的新兴安全供应商
  14. switch中使用枚举
  15. 直连线和交叉线的区别
  16. 2.4 货币转换 B
  17. JavaScript系列之去掉字符串前后的空格
  18. nest 模拟器_如何将Nest Thermostat用作运动探测器
  19. 快手之家(aardio.net) - 感谢信
  20. 学习C语言基本思路与参考书籍

热门文章

  1. 隐含参数_minimum_giga_scn的理解
  2. java-----static修饰符
  3. jq获取class,类属性的第一个元素
  4. 实现linux下 ls命令 (-a,-l,-R,-r,-i)
  5. 图书馆管理系统(Layui框架)
  6. 地理坐标(WGS84),投影坐标下(Mercator)切片系统的计算Java类
  7. 关于VC2010工程中的ipch文件夹和sdf文件
  8. windows无需重装系为C盘扩容
  9. 正规百度经验悬赏项目,多账号操作月入几千没问题
  10. 和谐家园二期项目智能化工程公告