2015暑假复习——算法

1、几种排序算法的总结

排序算法 最好 最坏 平均 空间复杂度稳定性 说明

选择排序 O(n2) O(n2) O(n2)O(1) 不稳定因为选择之后跟最前面的交换,存在跨越交换,所以不稳定

插入排序 O(n) O(n2) O(n2)O(1) 稳定

冒泡排序 O(n) O(n2) O(n2)O(1) 稳定如果设置一个标志位,检查一趟冒泡过程中有没有发生交换,如果没有则排序结束,那最好时间就是O(n)

堆排序 O(nlgn) O(nlgn) O(nlgn)O(1) 不稳定对选择排序的优化,同样存在跨越交换,不稳定

希尔排序 O(1) 不稳定 对插入排序的优化,步长从n/2到1每次除以2递减

快速排序 O(nlgn)O(n2) O(nlgn)O(nlgn) 不稳定对冒泡排序的优化,存在递归调用,所以空间复杂度是O(nlgn)

归并排序 O(nlgn) O(nlgn) O(nlgn)O(n) 稳定

2、dijastra算法和prim算法的比较

两种算法都是贪心算法的一种实现,dijkstra算法是设置一个数组记录到源点的最短距离,两个集合S和V,从V中找到到源点最短路径的点,然后更新数组;prim算法同样有两个集合S和V,还有一个表示边的集合,从V中找到到S中任意一点的最短的边,然后把该点放到S中,然后把该边记录下来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值