顺序表练习

已知一个顺序表L,其中元素递增有序排列,设计一个算法,插入一个元素x(x为int形)后保持改顺序仍然递增排列有序(假设插入总能成功)

void SeqList_insert(*L,int x) //最坏情况 O(n)
{
//定义变量暂时存储插入位置
int temp = length;
//首先找到插入位置
for(int i=0;i<length;i++)
{
if(x<L[i])
{
temp = i;
break;
}
}
if(length == temp)
{
L[length]=x;
return;
}
//元素后整体向后偏移
for(int i =length;i>temp;i--)
{
L[i] = L[i-1];
}
//把数值x插入
L[temp] = x;
}

void SeqList_add(*l,int x) //O(n) 最坏情况
{
//把元素放到末尾
L[length] = x;
//将末位元素逐个进行比较 and 交换顺序
for(int i =length -1; i>=1;i--)
{
if(L[i-1] > L[i])
{
L[i]=L[i]+L[i-1];
L[i-1]=L[i]-L[i-1];
L[i]=L[i]-L[i-1];
}
else break;
}
}

posted @ 2026-08-18 20:51  9Tired  阅读(2)  评论(0)    收藏  举报