l是用户传入的一个线性表,其中elementtype元素可以通过>、==、<进行比较,并且题目保证传入的数据是递增有序的。函数binarysearch要查找x在data中的位置,即数组下标(注意:元素从下标1开始存储)。找到则返回下标,否则返回一个特殊的失败标记notfound。
时间: 2023-04-27 13:01:11 浏览: 122
二分查找算法可以用来在一个有序的数组中查找一个特定的元素。具体实现如下:
1. 定义函数binarysearch,传入参数为l、n、x,其中l为用户传入的一个线性表,n为线性表的长度,x为要查找的元素。
2. 定义变量left、right、mid,分别表示查找区间的左端点、右端点和中间点。
3. 初始化left为1,right为n。
4. 循环执行以下步骤,直到left>right:
a. 计算mid=(left+right)/2。
b. 如果l[mid]==x,则返回mid。
c. 如果l[mid]>x,则令right=mid-1。
d. 如果l[mid]<x,则令left=mid+1。
5. 如果循环结束时仍未找到x,则返回notfound。
注意:元素从下标1开始存储,因此在返回下标时需要加1。
相关问题
l是用户传入的一个线性表,其中elementtype元素可以通过>、==、<进行比较,并且题目保证传入的数据是递减有序的。函数insert要将x插入data[]中合适的位置,以保持结果依然有序(注意:元素从下标0开始存储)。但如果x已经在data[]中了,就不要插入,返回失败的标记false;如果插入成功,则返回true。另外,因为data[]中最多只能存maxsize个元素,所以如果插入新元素之前已经满了,也不要插入,而是返回失败的标记false。
这是一个用户输入的线性表,其中的元素类型可以通过 >、==、< 进行比较,并且保证传入的数据是递减有序的。函数 insert 要将 x 插入到 data[] 中合适的位置,以保持结果依然有序。如果插入失败则返回 false,否则返回 true。需要注意的是,元素从下标 0 开始存储。如果 data[] 中已经存满了最多容纳 maxsize 个元素,则返回失败的标记 false。
L是用户传入的一个线性表,其中ElementType元素可以通过>、==、<进行比较,并且题目保证传入的数据是递减有序的。函数Insert要将X插入Data[]中合适的位置,以保持结果依然有序(注意:元素从下标0开始存储)。但如果X已经在Data[]中了,就不要插入,返回失败的标记false;如果插入成功,则返回true。另外,因为Data[]中最多只能存MAXSIZE个元素,所以如果插入新元素之前已经满了,也不要插入,而是返回失败的标记false。,这是情景,我上面的代码有什么问题
你的代码有以下问题:
1. 在第一个for循环中,如果X已经存在于线性表中,应该直接返回false,而不是继续遍历线性表。
2. 在第二个for循环中,应该将“L->Data[i] < X”改为“L->Data[i] > X”,因为要找到第一个比要插入元素小的元素,而不是比要插入元素大的元素。
3. 在第二个for循环中,对于每一个比要插入元素小的元素,都应该将它后面的元素向后移动一位,而不是只对第一个找到的元素进行操作。
4. 在第二个for循环中,找到要插入的位置后,应该使用“break”跳出循环,而不是继续遍历。
5. 在插入元素之前,应该先判断线性表是否已满,如果已满则返回false。
以下是修改后的代码:
```
bool Insert(List L, ElementType X) {
int i, j;
if (L->Last == MAXSIZE - 1) {
return false;
}
for (i = 0; i <= L->Last; i++) {
if (X == L->Data[i]) {
return false;
}
}
for (i = L->Last; i >= 0; i--) {
if (L->Data[i] > X) {
L->Data[i + 1] = L->Data[i];
} else {
break;
}
}
L->Data[i + 1] = X;
L->Last++;
return true;
}
```
阅读全文
相关推荐
基于LSTM神经网络的温度预测分析
介绍
基于LSTM神经网络的温度预测分析,探索使用LSTM神经网络对中国湖北省孝感市的气温进行预测,并且评估其预测精度。
软件架构
软件架构说明
安装教程
pip install --save pandas numpy sklearn tensorflow
**目 录**
. 课程背景及意义 2]()
[2. 实验目的: 2]()
[3. 数据集: 3]()
[3.1 数据来源 3]()
[3.2 数据清洗 4]()
[3.3 数据标准化 4]()
[4. 实验步骤: 5]()
[4.1 数据获取 5]()
[4.2 数据处理 7]()
[4.3 LSTM模型构建与训练 10]()
[5. 结果分析 18]()
[6. 实验总结 21]()
1. # <a name