順序表刪除重複值的高效演算法。

2022-02-07 09:25:48 字數 406 閱讀 4516

需求:編寫演算法,實現刪除當前順序表中所有值為x的元素,並使此操作的時間複雜度為o(n),其中n為線性表的長度。

分析: 1,從順序表的表頭依次掃瞄,遇到值為x的資料元素就將其刪掉,直到掃瞄最後乙個元素。

順序表刪除乙個元素時間複雜度為o(n),要對n個元素處理,所以時間複雜度為o(n^2),不符合題意。

2,先設計乙個計數變數k,用來記錄不等於x的值得個數,初始值為0,一邊掃瞄的時候一邊統計,當統計到k個不

等於x的值的數時,將其放到第k個存放位置,最後修改長度為k。

1

//刪除順序表重複元素

2public

void

del_x(object x) 8}

9 curlen=k;

10 }

刪除順序表中值重複的元素

設計乙個演算法,刪除順序表中值重複的元素 值相同的元素僅保留第乙個 使得表中所有元素的值均不相同。其中順序表的動態分配用c語言描述如下 define initsize 100 表長度的初始定義 typedef int datatype 定義表元素的資料型別 typedef struct seqlis...

mysql刪除表中重複值

工作中遇到這麼個需求,有個 eh 表沒有唯一索引,當表中有一大堆資料後,又需要建個唯一索引,而這個表中還很多重複值,問我咋辦?一句話形容就是 表中重複值太多,如何去重。舉個白痴例子 1.建表a create table a id int,name char 10 2.插入資料 id name 1 a...

鍊錶演算法 刪除重複節點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 public class listnode public listnode deleteduplication listnode phead l...