使用Erlang实现简单的排序算法:快速排序,冒泡排序,插入排序

本文介绍了三种基本的排序算法:快速排序、冒泡排序和插入排序,并提供了Erlang语言的具体实现。通过对这些算法的理解和实现,读者可以更好地掌握排序算法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【排序算法】

-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.

 

转载于:https://www.cnblogs.com/unqiang/p/9203391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值