设有一个顺序表A,其中的元素按值非递减有序排列,编写一个函数插入一个元素x后持该向量仍按递减有序排列。

admin2014-12-25  7

问题 设有一个顺序表A,其中的元素按值非递减有序排列,编写一个函数插入一个元素x后持该向量仍按递减有序排列。

选项

答案非递减有序序列是一个按值从小到大进行排序的序列,而且该序列中可能存在值相同的元素。本题的算法思想是:先找到适当的位置,然后后移元素空出一个位置,再将x插入。实现本题功能的函数如下: void insert(Sqlist&A,int n,x) /*向量A的长度为n*/ { int i,j; if(x>=A[n]) A[n+1]=x; /*若x大于最后的元素,则将其插入到最后*/ else { i=1; while(x>=A[i])i++; /*查找插入位置i*/ for(j=njj>=i;j一一)A[j+1]=A[j]; /*移出插入x的位置*/ A[i]=x; n++; /*将x插入,向量长度增1*/ } }

解析
转载请注明原文地址:https://kaotiyun.com/show/MiVx777K
0

最新回复(0)