Clover排序算法
插入算法的优化版
双向排序算法是众多插入算法中的一种,是插入算法的优化版。
双向插入排序算法
该算法的最佳时间复杂度是:O(n)
视觉感受排序过程
空间复杂度:O(3n)
碍于其他原因我并未进行复杂度测试,以上只是理论复杂度。
算法剖析:
从大到小排序(也可以举一反三,写出从小到大的排序):
该算法的所有动作均取决于一个数字,也就是平均数。
顺序处理数据,先取当前处理数字出来和平均数比对,如果比平均数大或者等于平均数则再次判断是否比最左边的数字大,或者等于最左边的数字,如果是的话则将当前处理的数字放到数据的最左边如果否就从最左边到最右边寻找一个比当前处理数大的数字,并且插入到它的后面;如果当前处理数小于平均数,就判断是否等于或者小于最左边的数如果成立则把当前处理数放到最右边,如果不成立则按照刚才提及的方法从左向右寻找可以存放该数的位置,并插入;最后还原平均数,计算当前平均数;便完成了一个处理周期,用上述方法依次处理所有数据。
参考资料
最新修订时间:2023-11-19 19:18
目录
概述
参考资料