C++编写当前顺序表为递增有序表,设计算法,在表中插入值为x的元素,要求仍保持表的有序性。 void OrderedInsert(SqList &L,ElemType x) 主程序测试时,建立递增有序整数线性表(1,3,5,7,9,11,13,15,17,19),输入待插入元素,输出形成的新表。
时间: 2023-04-03 22:02:10 浏览: 113
算法设计课程综合性实验报告-有序表随机化搜索
抱歉,我可以回答这个问题。可以使用二分查找算法找到插入位置,然后将该位置后的元素依次后移,最后将x插入到该位置即可。具体实现可以参考以下代码:
void OrderedInsert(SqList &L, int x) {
int low = , high = L.length - 1, mid;
while (low <= high) {
mid = (low + high) / 2;
if (L.data[mid] == x) {
break;
} else if (L.data[mid] < x) {
low = mid + 1;
} else {
high = mid - 1;
}
}
for (int i = L.length - 1; i >= low; i--) {
L.data[i + 1] = L.data[i];
}
L.data[low] = x;
L.length++;
}
阅读全文