零聲c/c++Linux服務(wù)器開(kāi)發(fā)高級(jí)架構(gòu)師2304
算法的5個(gè)特性
有窮性 確定性 可行性 輸入 輸出
[if !supportLists]1.2? [endif]算法的時(shí)間復(fù)雜度/空間復(fù)雜度
for T(n) = O(n)
for for T(n) = O(n^2)
原地操作S(n) = O(1)
2.1 算法題:順序表:刪除重復(fù)元素
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存儲(chǔ)位置p(插入點(diǎn)的直接前驅(qū))(圖步驟①) ;
??????????????????? (2)生成一個(gè)新結(jié)點(diǎn)*s (圖步驟②);
??????????????????? (3)將新結(jié)點(diǎn)*s的數(shù)據(jù)域置為x(圖步驟③);
??????????????????? (4)新結(jié)點(diǎn)*s的指針域指向結(jié)點(diǎn)ai (圖步驟④);
??????????????????? (5)令結(jié)點(diǎn)*p的指針域指向新結(jié)點(diǎn)*s (圖步驟⑤)。
[if !vml]
[endif]