排序算法的时间复杂度


单向链表:

  最好情况:头节点 O(1)
  最坏情况:尾节点 O(n)

双向链表:

  最好情况:insert/delete 头节点/尾节点 O(1)
  最坏情况:元素不在数组中,遍历所有元素 O(n)

数组擅长读取,链表擅长写入。写入要先读取定位,再写入。

读取场景:

  任意序位读取,复杂度: 数组O(1),链表O(n)。

写入场景:

  任意序位写入,定位复杂度:数组O(1),链表O(n);写入复杂度:数组O(n),链表O(1)。

为什么数组的插入的复杂度是O(n)?

  在数组尾部插入就是O(1),因为不影响别的操作,假如说数组为a长度为10,你要在a[4]处插入一个值,因为数组是连续的,不可能再中间凭空新增一个空间,你要在a[4]上插入一个值,就需要将原来的a[4]-a[9]向后移一位


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM