使用Erlang實現簡單的排序算法:快速排序,冒泡排序,插入排序


【排序算法】

-module(sort). -compile(export_all). %%快速排序 qsort([]) -> []; qsort([Pivot|T]) -> qsort([X || X <- T,X < Pivot]) ++ [Pivot] ++ qsort([X || X <-T,X >= Pivot]). %%冒泡排序 bubble_sort(L) -> bubble_sort(L,len(L)). bubble_sort(L,1) -> L; bubble_sort([H|T],N) -> Result = bubble_once(H,T), io:format("Result is ~p~n",[Result]), bubble_sort(Result,N-1). bubble_once(H,[]) -> [H]; bubble_once(X,[H|T]) -> if X > H -> [H|bubble_once(X,T)]; true -> [X|bubble_once(H,T)] end. len([]) -> 0; len([_H|T]) -> 1 + len(T). %%插入排序 insert_sort(L) -> insert_sort([],L). insert_sort(L,[]) -> L; insert_sort(L,[H|T]) -> insert_sort(normal(H,L),T). normal(X,[]) -> [X]; normal(X,[H|T]) -> if X > H -> [H|normal(X,T)]; true -> [X|[H|T]] end.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM