排序算法总结

排序算法

分类操作元素排序思想(从小到大)时间复杂度空间复杂度算法稳定性对比次数(min)对比次数(max)移动次数(min)移动次数(max)适用条件优化
直接插入未排序字段的第一个元素插入已排序字段的位置O(n^2)O(1)(n-1)*(3n-4)/2n希尔排序/二分插入
二分插入未排序字段的第一个元素二分查找已排序字段的位置O(n*log2(n))O(1)n
希尔排序元素与其增量元素(趟数↑增量元素↓)组内使用插入/选择排序O(logm(n))O(n)××
冒泡排序相邻元素交换位置使最小元素到已排序字段O(n^2)O(1)n-1(已有序)(n-1)*(3n-4)/20(n-1)*(3n-4)/2数组已基本有序
简单选择未排序段的最小值加入已排序段末尾O(n^2)O(1)(n-1)*(3n-4)/2(n-1)*(3n-4)/20(n-1)*(3n-4)/2堆排序
堆排序未排序段的根加入已排序段末尾O(log n)O(n)×(n-1)+n*logm(n)同左
归并排序(内部)分组元素 (分组↓分组元素↑)分组元素内部简单选择排序O(logm(n))O(n)n-1同左0(n/2)*logn(n)
基数排序元素部位元素部位权值(从小到大)排序O(mn)O(n)×mnlog2(n)m*…0m*数量巨大
归并排序(外部)硬盘读取进内存的片段元素归并排序(m-1)*n(m-1)*nnn外部排序归并路数+败者树↑ &归并段数↓(置换-选择排序+最佳归并树)
败者树树根元素取出加入树尾O(log n)O(n)×(n-1)+n*logm(n)同左
置换-选择排序已加入内存的元素加入工作区,工作区选取最小元素成归并段;工作区满则建立新归并段O(n-1)O(n)n-1同左nn

最小生成树算法

算法算法思想适用条件
dijkstra算法每次选取连通距离起点最近的未到达顶点直到到达终点单源无负权最短路径

最短路径算法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值