1、设顺序表L中的数据元素递增有序。试写一算法,将数据元素x插入到顺序表L的适当位置,以保持该表的有序性。 c语言写
时间: 2024-02-27 18:56:44 浏览: 116
数据结构题集答案2.11② 设顺序表L中的数据元素递增有序。
5星 · 资源好评率100%
算法如下:
```
void insert(int L[], int len, int x) {
int i = 0, j = len - 1;
while (i <= j) {
int mid = (i + j) / 2;
if (x == L[mid]) {
i = mid + 1;
break;
} else if (x < L[mid]) {
j = mid - 1;
} else {
i = mid + 1;
}
}
for (int k = len; k > i; k--) {
L[k] = L[k - 1];
}
L[i] = x;
}
```
该算法的时间复杂度为O(logn),其中n为顺序表L的长度。
阅读全文