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