在表中查找数组为x的元素
线性表(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的元素相关推荐
- c语言编程顺序查找法,建立顺序表,实现顺序表的遍历,在顺序表中查找关键字为e的元素(c语言编写)...
满意答案 qqea12345 推荐于 2017.11.24 采纳率:45% 等级:7 已帮助:1062人 楼主我大二 也刚上数据结构耶 这是我上实验课的时候用链表写的 还没交老师看 功能还差一 ...
- php多个表中查找数据_HeidiSQL 免费的可视化数据库管理工具
HeidiSQL是一款免费的软件,并且易于学习和使用.HeidiSQL让你从数据库内可视化的读写数据.结构体.它支持MariaDB.MySQL.Microsoft SQL.PostgreSQL等数据库 ...
- 如何在JavaScript / jQuery中查找数组是否包含特定字符串? [重复]
本文翻译自:How to find if an array contains a specific string in JavaScript/jQuery? [duplicate] This ques ...
- 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居
在数组中查找第k个最大元素 Problem statement: 问题陈述: Given an array of elements, find the nearest (on the right) g ...
- c++获取数组长度查找算法_在C ++中查找数组长度
c++获取数组长度查找算法 介绍 (Introduction) In this article, we are going to learn about the various ways follow ...
- SQL消费表中查找所有用户最后一条消费记录
SQL消费表中查找所有用户最后一条消费记录 5 SQL消费表中查找所有用户最后一条消费记录 BussnissLogs表中字段BussnissLogsID(消费流水ID),UserID(用户ID),Ha ...
- mysql 找表重复数据,mysql 数据表中查找重复记录
mysql 数据表中查找重复记录 复制代码 代码如下: select user_name,count(*) as count from user_table group by user_name ha ...
- php在指定html元素中输出,如何从PHP中的数组输出html svg元素?
我有svg元素的数组.我必须从列出的阵列中打印出来.我试图打印它,但它不工作.请指导我如何获取浏览器上呈现的svg元素. actualy有阵列中的其他项目我没有表现出bcoz的字符限制如何通过SVG标 ...
- c语言递增20,2020-07-20(C语言)数据结构-在一个递增有序的线性表中,有数值相同的元素存在。若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素...
//在一个递增有序的线性表中,有数值相同的元素存在.若存储方式为单链表,设计算法去掉数值相同的元素,使表中不再有重复的元素,例如:(7,10,10,21,30,42,42,51,70)将变为(7,10 ...
最新文章
- 统计s=hello alex alex hello haiyan cc haiyan com中每个单词的个数
- 2018 SaaS应用大会 掀起SaaS应用新浪潮
- MySQL中show语法使用总结
- Visual Studio 2013开发 mini-filter driver step by step (11) driver 签名
- 解决9.png malformed以及libpng warning: iCCP
- npm教程:如何查看TypeScript版本、卸载TypeScript和安装TypeScript
- python简单连接数据库
- vue sync用法
- 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
- hutool的定时任务不支持依赖注入怎么办_可调度定时任务在SpringBoot中的实践
- 多层full-connect 神经网络测试
- Security+ 学习笔记27 灾后恢复
- 2022 年要了解的新兴安全供应商
- switch中使用枚举
- 直连线和交叉线的区别
- 2.4 货币转换 B
- JavaScript系列之去掉字符串前后的空格
- nest 模拟器_如何将Nest Thermostat用作运动探测器
- 快手之家(aardio.net) - 感谢信
- 学习C语言基本思路与参考书籍