使用Erlang实现简单的排序算法:快速排序,冒泡排序,插入排序
2024-08-25 21:08:43
【排序算法】 -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.
最新文章
- 【LeetCode】#7 Reverse Integer
- winform 使用 ReportViewer做报表
- IOS第八天(7:UITableViewController新浪微博,cell 复用的简单写法优化和cell高度从模型中获取)
- 老毛桃安装Win8(哪里不会点哪里,so easy)
- Windows Server 2008 DNS服务器安装与配置
- SQLite中的日期基础
- 求数列的和 AC 杭电
- ecshop有关real_ip()你发现的问题
- RequireJS进阶(二)
- sublime模式下开启vim并修改esc
- Nginx设置alias实现虚拟目录 alias与root的用法区别
- C语言可变參函数的实现
- Python之面向对象三
- js三元表达式
- IntelliJ IDEA 2017 配置Tomcat 运行Web项目
- Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(4)
- sqlserver 一键备份,异机还原脚本
- css声明的优先级
- 关于UbuntuMate的两个问题点:SSH问题处理与自启动项配置
- jquery仿移动端支付宝键盘
热门文章
- The expression being assigned to optional parameter `v2&#39; must be a constant or default value
- jtds链接SqlServer数据库(整合)
- 使用canvas制作的移动端color picker
- HashMap在高并发下引起的死循环
- ServicePointManager.ServerCertificateValidationCallback 冲突的解决
- javascript 对象属性的添加,删除,json对象和字符串转换方法等
- httpd.conf详细解释
- ubuntu16.04 ssh服无法远程连接解决办法
- SparkMLlib基础内容
- EffectiveJava(12)考虑实现Comparable接口