• 排序算法总结


    各种排序算法总结

     排序算法  插入排序  冒泡排序  选择排序  归并排序  快速排序 堆排序  计数排序  基数排序  桶排序 
    思想  构建有序序列 两两交换 每次找一个最小值 分治法思想 分治法思想 最小堆、最大堆 数字本身的属性  对数据选择多种基数  函数的映射关系、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),但是需要额外的空间开销。
  • 相关阅读:
    手势
    ios提示框,自动消失
    UITableView
    UIAlertView
    微信公众号主页链接
    试用avalon2.0
    VirtualPathProvider的使用
    代码暂存 [获取二唯码并识别保存二唯码]
    提交数据url太长导致提交失败
    打通前后台
  • 原文地址:https://www.cnblogs.com/crystalmoore/p/5933034.html
Copyright © 2020-2023  润新知