排序算法系列总结

声明:引用请注明出处http://blog.youkuaiyun.com/finish_dream/article/details/70242890


引言

最近两周把排序算法学习实现了一遍,主要包括插入排序,选择排序,交换排序以及归并排序等排序算法,本篇文章主要用来对这几个算法进行下归类分析,最后再给出每种算法的时间、空间复杂度。

所有算法一律用C#实现的,接下来有时间我会迭代一下的,用C实现算法,毕竟就效率而言还是C更棒一点,个人觉得用C来写算法也更合适一点。不过可能就不会在优快云博客上更新了,只会在我的Github上new一个项目来更一下,感兴趣的可以去我Github上面fork一下看一下,至于链接前几篇文章的末尾都有,而且本篇文章的结尾也会有的。


分类比较

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。

我们这里总结的排序算法一律为内部排序算法。

这里写图片描述

当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。

快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;

各种算法时间、空间复杂度一览表

这里写图片描述

这里写图片描述


完整代码被我放在了Github上,感兴趣的可以下下来看一下https://github.com/Finish-Dream/DSAlgorithm

转载于:https://www.cnblogs.com/haxianhe/p/9271046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值