• 排序算法总结


    各种排序算法总结

     排序算法  插入排序  冒泡排序  选择排序  归并排序  快速排序 堆排序  计数排序  基数排序  桶排序 
    思想  构建有序序列 两两交换 每次找一个最小值 分治法思想 分治法思想 最小堆、最大堆 数字本身的属性  对数据选择多种基数  函数的映射关系、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),但是需要额外的空间开销。
  • 相关阅读:
    框架-.NET:Spring.Net
    杂项-WebService:WebService
    公司-企业内部创业:企业内部创业
    公司-内部创业:内部创业
    架构-软件系统体系结构-B/S架构:B/S架构
    架构-软件系统体系结构-C/S架构:C/S架构
    android google map v1 v2 v3 参考
    选购好的主机和服务器可以有效提高优化效果
    u盘安装ubuntu10.04 、11.04 server
    IOS学习笔记45--UITableView性能优化
  • 原文地址:https://www.cnblogs.com/crystalmoore/p/5933034.html
Copyright © 2020-2023  润新知