關於連續性儲存陣列的一些小演算法

2021-09-29 16:46:06 字數 1493 閱讀 5920

本人呢正處於完成c語言的大作業時期,對於鍊錶啊,非常頭疼,所以就查了有關於此類的一些基本知識,連續性陣列與鍊錶到是比較相近,便多看了一點,現在就分享一點

首先我們先定義乙個非常簡單結構體

struct arr

;

結構體定義完了,下面對其進行初始化

void

init_arr

(struct arr * parr,

int length)

//lenght表示接收的陣列長度

else

return

;}

當我們用著用著發現陣列不夠了,這個時候追加的用處就體現出來了。

當然這個追加也是要看當時你動態陣列分配大小也是有關的,所以追加的時候要用到乙個判斷,如果這個連續型陣列已經是滿了的話追加也是不成功的。

bool is_full

(struct arr * parr)

(struct arr * parr,

int val)

}

連續性陣列必須要會的兩個就是插入和刪除

插入同樣的插入也要去判斷一下這個陣列是否已經滿了,如果滿了的話插入就會失敗

bool is_full

(struct arr * parr)

bool insert_arr

(struct arr * parr,

int pos,

int val)

parr->pbase[pos-1]

= val;

//移動過後再將資料插入

(parr->cnt)++;

//同樣當插入成功後這個陣列的有效值也要+1

return true;

}

刪除

刪除就不用在關心陣列是否滿了這個問題,找到那個數直接刪了

bool delete_arr

(struct arr * parr,

int pos,

int*pval)

(parr->cnt)--;

//刪除資料後有效元素-1

}

倒置,顧名思義就是將陣列反過來`

void

inversion_arr

(struct arr *parr)

return

;}

這個程式在陣列奇數或者偶數情況下是都能執行的

關於排序的方法就很多了,我在這裡就先寫兩個最基本的,乙個是選擇排序,乙個是氣泡排序。

選擇排序

void

sort_arr

(struct arr * parr)}}

}

氣泡排序
void

sort_arr

(struct arr * parr)}}

}

C4 5 演算法對於連續性屬性的處理方法介紹

c4.5既可以處理離散型屬性,也可以處理連續性屬性。在選擇某節點上的分枝屬性時,對於離散型描述屬性,c4.5的處理方法與id3相同。對離散分布 且取值數目 3的特徵的處理 c4.5決策樹可以支援多叉樹的形式,因此對於數目大於等於3的離散特徵,可以採用多分叉的形式 對於連續分布的特徵,其處理方法是 先...

關於Cookie儲存使用者資訊的一些小問題

cookie不能儲存物件,只能儲存字串,手上的這個專案因為要將使用者資訊和token儲存在cookie中,最簡單的方式是將登陸時返回的資訊儲存在物件中,再存入cookie中,這時就需要乙個轉換了 this.cookie.set token json.stringify tokenmsg json.s...

關於陣列的一些演算法

去除陣列裡,重複的元素 方案1,用陣列本身的特性,去重 datetime dt datetime.now string s new string q s.distinct toarray 方案2,相鄰的進行比較,如果不等,則加入list string stringarray s listlistst...