erl 線性結構

2021-07-05 05:25:49 字數 1351 閱讀 7847

-module(line_data).

-author("sugar").

%% api

-compile(export_all).

run_time(func,arg)->

timer:tc(?module,func,arg).

%%初始化

init(len)->

lists:foldl(fun(key,acc)->

[|acc]

end,,lists:seq(1,len)).

%% d1=line_data:run_time(init,[1000000]). 341000 微秒

%%插入

insert(pos,,list) when pos =< length(list) ->

= lists:split(pos,list),

head ++ [|tail];

insert(_, _, _) ->

error.

%% line_data:run_time(insert,[100000,,d1]). 18000 微秒

%% line_data:run_time(insert,[1000000,,d1]). 172000 微秒

%%刪除 具體值

delete_data(,list)->

lists:delete(,list);

delete_data(_,_) -> error.

%% line_data:run_time(delete_data,[,d1]). 114000 微秒

%%刪除位置

delete_pos(pos,list) when

pos =< length(list) ->

lists:keydelete(pos,1,list);

delete_pos(_, _) -> error.

%% line_data:run_time(delete_pos,[,d1]). 104000 微秒

find(pos,list) when pos =< length(list) ->

lists:keyfind(pos, 1, list);

find(_, _) ->

error.

%% line_data:run_time(find,[9,d1]). 4000 微秒

作為erlang最常用的資料結構lists的基本操作都在o(n)級別,作為kv儲存的話erlang還是有比較豐富的資料結構的比如:property list (proplist), orderd dictionary(orddict) 這兩個資料結構儲存相對輕量的資料,大量的資料儲存結構可以用 dicts , gb_trees ,這些對應後面部落格會一一分析講解,希望各位大神指點。

erl 啟動命令

所謂的啟動erlang run time system 支援多種args.erl cmd 一般解析為 emulator flag cmd 一般為普通flag 可以從init get arguments獲取到。當然也有特殊用途的。cmd.叫plain args,不會解析為erl所用,但是你可以通過in...

erl啟動引數

color blue erl啟動引數分類 color 1 emulator flags 用 連線,用於控制模擬器行為的 2 flags 用 開頭,erlang執行時系統引數,可用init get argument 1獲得 3 plain flags extra 後面的都是普通引數 color blu...

線性結構和非線性結構

資料結構是計算機儲存 組織資料的方式。常見的資料結構分類方式如下圖 常用的線性結構有 線性表,棧,佇列,迴圈佇列,陣列。線性表中包括順序表 鍊錶等,其中,棧和佇列只是屬於邏輯上的概念,實際中不存在,僅僅是一種思想,一種理念 線性表則是在記憶體中資料的一種組織 儲存的方式。線性結構是最簡單最常用的一種...