《数据结构导论之时间复杂度》
Posted 杨晓风-linda
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《数据结构导论之时间复杂度》相关的知识,希望对你有一定的参考价值。
Ѿ前言
在数据结构导论中,于己而言时间复杂度算是比较难以计算的,认为对算法逻辑上的理解要求较高,继而小编在这里先总结一些知识点。
Ѿ定义
❶时间复杂度:
计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。
❷最坏时间复杂度:
对相同输入数据量的不同输入数据,算法时间用量的最大值。
❸平均时间复杂度:
对所有相同输入数据量的各种不同输入数据,算法时间用量的平均值。
Ѿ知识点
Ѽ线性表
❶顺序表实现算法的分析
插入算法的平均移动次数约为n/2,时间复杂度为O(n)
删除算法最坏情况下,元素移动次数为(n-1),时间复杂度为O(n)
元素平均移动次数约为(n-1)/2,时间复杂度为O(n)
定位算法以参数X与表中结点值的比较为标准操作,平均时间复杂度为O(n)
求表长和读表元素算法的时间复杂度为O(1)
❷单链表
插入算法InsertLinklis计算量为[n(n-1)]/2,时间复杂度为O(n^2)
后插算法时间复杂度为O(n)
前插算法时间复杂度为0(n)
❸循环链表
双向循环链表是一种对称结构,既可以直接访问前驱结点又可以直接访问后继结点,找前驱结点和后继结点的时间复
杂度均为O(1)
Ѽ哈夫曼算法
平均比较次数为:WPL(T)=
Ѽ拓扑排序
时间复杂度为O(n+e)
n:图的顶点个数 e:图的弧的数目
Ѽ查找
❶顺序查找、二分查找、索引顺序查找依次的平均查找长度为:
ASL(顺序)=(n+1)/2
ASL((二分)≈-1
ASL(索引顺序)=+1
顺序查找效率最低但限制少,二分查找效率最高,但限制最强。索引顺序查找位于二者之间
❷二叉排序树的平均查找长度ASL≤1+
Ѽ算法
❶插入排序
直接插入排序时间复杂度:O(n^2),稳定的排序方法
❷交换排序
冒泡排序时间复杂度为O(n^2),稳定的排序方法
快速排序:平均时间性能下,时间复杂度为:n;最坏情况下,即对几乎已是排序好的输入序列,该算法效率
低,近似于O(n^2)
❸选择排序
直接选择排序:O(n^2),不稳定
堆排序:无论是在平均时间性能下还是在最坏情况下,时间复杂度均为n,不稳定
❹归并排序
有序序列的合并:算法执行时间为:O(n-h+1)
二路归并排序:n,稳定的排序方法
Ѿ总结
以上关于时间复杂度的总结只是一些知识点的梳理,具体时间复杂度是如何计算的,目前还没有进行组织学习,待学习之后可再与君共勉哦
以上是关于《数据结构导论之时间复杂度》的主要内容,如果未能解决你的问题,请参考以下文章