已知一个顺序表L,其中的元素按值非递减有序排列,设计一个算法插入一个元素x后保持该顺序表仍按非递减有序排列。
1、intinsert(inta[arrsize],intnum,intx){if(num==arrsize)return(-1);i=num-1;while(i>=0&&a[i]>x){a[i+1]=a[i];i--;}a[i+1]=x;num++;return(1);}[/i][/i]
举一反三
内容
- 0
已知一个向量中的元素按元素值非递减有序排列,编写一个函数删除向量中多余的值相同的元素。
- 1
一含N个元素的顺序表,若在第i个元素之前插入一个元素,需移动____个元素。
- 2
已知有两个按元素值递增有序的顺序表A和B(这样的顺序表称递增有序顺序表)。设计一个算法将顺序表A和B的全部元素归并到一个按元素递增有序的顺序表C中。并分析算法的空间复杂度和时间复杂度。
- 3
1.假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原表(即A表和B表)的结点空间构造C表。
- 4
要在具有n个元素的有序顺序表中插入一个元素,插入后仍是有序顺序表,则在最坏情况下需要移动的元素个数为() A: n-1 B: n C: n/2 D: n+1