零声c/c++Linux服务器开发高级架构师2304
算法的5个特性
有穷性 确定性 可行性 输入 输出
[if !supportLists]1.2 [endif]算法的时间复杂度/空间复杂度
for T(n) = O(n)
for for T(n) = O(n^2)
原地操作S(n) = O(1)
2.1 算法题:顺序表:删除重复元素
void def_sameElem_1(Sqlist &L, ElemTypevalue)
{
intk = -1;
for(inti = 0; i < L.length; i++)
{
if(value!= L.data[i])
{
k++;
L.data[k] = L.data[i];
}
}
L.length = k +1;
}
2.2 算法题:顺序表:元素逆置
void ListRevese(Sqlist &L)
{
inti;
Elemtypetemp;
for(i= 0; i < L.length/2; i++)
{
temp= L.elem[i];
L.elem[i]= L.elem[L.length – i - 1];
L.elem[L.length– i - 1] = temp;
}
}
2.3 单链表插入操作
(1)找到ai-1存储位置p(插入点的直接前驱)(图步骤①) ;
(2)生成一个新结点*s (图步骤②);
(3)将新结点*s的数据域置为x(图步骤③);
(4)新结点*s的指针域指向结点ai (图步骤④);
(5)令结点*p的指针域指向新结点*s (图步骤⑤)。
[if !vml]
[endif]