• 排序算法总结


    各种排序算法总结

     排序算法  插入排序  冒泡排序  选择排序  归并排序  快速排序 堆排序  计数排序  基数排序  桶排序 
    思想  构建有序序列 两两交换 每次找一个最小值 分治法思想 分治法思想 最小堆、最大堆 数字本身的属性  对数据选择多种基数  函数的映射关系、Hash 
    数据结构  数组  数组  数组  数组 不定   数组 数组 数组  数组 
    最差时间复杂度 O(n^2)   O(n^2)   O(n^2)   O(n*lgn)  O(n^2)、改进O(n*lgn)  O(n*lgn)  O(n+k)  O((n+k)*d)  O(n^2)
    最优时间复杂度  O(n)   O(n^2)、改进O(n)    O(n^2)   O(n*lgn)  O(n*lgn)  O(n*lgn)  O(n+k)  O((n+k)*d)  O(n)
    平均时间复杂度  O(n^2)   O(n^2)   O(n^2)   O(n*lgn)  O(n*lgn)  O(n*lgn)  O(n+k)  O((n+k)*d) O(n) 
    最差空间复杂度  总共 O(n) ,需要辅助空间O(1)  总共 O(n) ,需要辅助空间O(1) 总共 O(n) ,需要辅助空间O(1)  О(n) Ω(n)额外空间  总共 O(n) ,需要辅助空间O(1)  O(n+k) 额外空间,k为序列中Max-Min+1   O(n) 额外空间 (K为特征个数)  O(k) 额外空间 
    稳定性 稳定 稳定 不稳定 稳定 不稳定 不稳定 稳定 稳定  稳定
     
    空间复杂度:
    In-place sort(不占用额外内存或占用常数的内存):插入排序、选择排序、冒泡排序、堆排序、快速排序。
    Out-place sort:归并排序、计数排序、基数排序、桶排序。
     
    稳定性:
    stable sort:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序。
    unstable sort:选择排序、快速排序、堆排序。
     
    比较排序:常见的排序算法都是比较排序。非比较排序:计数排序、基数排序和桶排序。
    计数排序:待排序的数组元素都是整数,适合数据分布集中的排序。
    基数排序:每位的排序是计数排序;桶排序:输入数组的元素都在[0,1)之间。
     
    比较排序的时间复杂度通常为O(n2)或者O(n*lgn),比较排序的时间复杂度下界就是O(n*lgn);而非比较排序的时间复杂度可以达到O(n),但是需要额外的空间开销。
  • 相关阅读:
    职场篇:聚焦与复盘
    职场篇:直面情绪杀手【已补更】
    .NetCore实践篇:成功解决分布式监控ZipKin聚合依赖问题(三)
    职场篇:为何我们需要思想大洗礼?
    职场篇:从温水煮青蛙说起
    .NetCore实践篇:分布式监控系统zipkin踩坑之路(二)
    postman application/json;
    yapi 个人空间 这个分组的问题
    yapi 的分组的理解!
    yapi的安装
  • 原文地址:https://www.cnblogs.com/crystalmoore/p/5933034.html
Copyright © 2020-2023  润新知