最好,最坏和平均时间复杂度
在查找成功的情况下,若待查找的数据元素恰好是数组的第一个元素,则只需比较一次即可找到,这就是最好情况,T(n)=O(1),称最好时间复杂度。
若是最后一个元素,则要比较n次才能找到。T(n)=O(n),称最坏时间复杂度。
在查找不成功的情况下,无论何时进行不成功的查找都需要进行n次比较,T(n)=O(n)。
成功查找是的平均次数:(n+1)/2,T(n)=O(n)。 称平均时间复杂度。一般取最坏或平均时间复杂度。
public static int rSearch(int a[], int x) {int n = a.length; for (int i = 0; i<n&&i!=a[i];i++) {if ( i==n)return -1;else return i; } return 0; }
冒泡排序对数组a中的n个整数数据元素进行排序。
public class 时间复杂度2 {public static void Bubble_sort(int[] a, int n) { int temp, flag = 1; for (int i = 1; i < n && i < flag; i++) { flag = 0; for (int j = 0; j < n - i; j++) { if (a[j] > a[j + 1]) { flag = 1; temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } }}}
此算法正序最好,逆序最坏T(n)= n(n-1)/2+2n(n-1) = O(n*n)
n个数据元素的a数组中删除第i个元素
public class 时间复杂度3 {
public static int delete(int a[],int n,int i) { int j; if(i<1||i>n) return 0; for(j=i;j<n;j++) a[j-1]=a[j]; return 1; }}
最坏n-1,最好0,所以求平均T(n)=(n-1)
常数阶O(1),对数阶O(log2n)(以2为底n的对数,下同),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n^2),立方O(n^3),...,k次方阶O(n^k),指数阶O(2^n)。随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。
有错误之处,请各位大佬多多指教。
最好,最坏和平均时间复杂度相关推荐
- 常见排序算法的最好、最坏、平均时间复杂度以及空间复杂度
文章目录 思考 前言 如何分析一个排序算法? 排序算法的执行效率 排序算法的内存消耗 排序算法的稳定性 如何选择合适的排序算法? 如何优化快速排序? 解答思考题 参考链接 思考 为什么插入排序比冒泡排 ...
- 常见排序算法的最好、最坏、平均时间复杂度、稳定性、是否基于比较
先看表格 分类 算法 时间复杂度 空间复杂度 稳定性 关联性 最好 最差 平均 插入排序 直接插 ...
- 算法复杂度分析(下):最好、最坏、平均、均摊等时间复杂度概述
细化时间复杂度分析 代码千千万,有些代码逻辑会很复杂,所以为了更细化的分析算法的复杂度,再复杂度分析方面引入了4个知识点: 1.最好情况时间复杂度(best case time complexity) ...
- 【数据结构与算法-java实现】二 复杂度分析(下):最好、最坏、平均、均摊时间复杂度的概念
上一篇文章学习了:如何分析.统计算法的执行效率和资源消耗? 点击链接查看上一篇文章:复杂度分析上 今天的文章学习以下内容: 最好情况时间复杂度 最坏情况时间复杂度 平均情况时间复杂度 均摊时间复杂度 ...
- 详细分析冒泡排序、选择排序、插入排序(最好/最坏/平均时间复杂度(有序度)、稳定性、内存消耗(原地排序))
如何分析排序算法 最好.最坏.平均时间复杂度 算法的时间复杂度,会随着排序集合的有序性而改变.我们需要分析不同算法在不同数据下的表现 最好时间复杂度:在完全有序的情况下的时间复杂度(满有序度) 最坏时 ...
- 3.最好、最坏、平均、均摊时间复杂度
关注公众号 MageByte,设置星标点「在看」是我们创造好文的动力.后台回复 "加群" 进入技术交流群获更多技术成长. 本文来自 MageByte-青叶编写 上次我们说过 时间复 ...
- 3L-最好、最坏、平均、均摊时间复杂度
关注公众号 MageByte,设置星标点「在看」是我们创造好文的动力.后台回复 "加群" 进入技术交流群获更多技术成长. 本文来自 MageByte-青叶编写 上次我们说过 时间复 ...
- 浅析最好、最坏、平均、均摊时间复杂度
浅析最好.最坏.平均.均摊时间复杂度 下面讲解四个复杂度分析方面的知识点,最好情况时间复杂度(best case time complexity).最坏情况时间复杂度(worst case time ...
- 04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度
// n表示数组array的长度 int find(int[] array, int n, int x) {int i = 0;int pos = -1;for (; i < n; ++i) { ...
最新文章
- tomcat配置manager
- mysqldump备份数据库
- .ini文件的读写操作
- koa2+vue实现登陆以及是否登陆控制
- OpenCV imwrite
- 今晚直播:WLS/WAS故障基本分析介绍
- python unique函数_《Python编程从入门到实践》json数据可视化练习详解
- 用Python2编译Python3.X的代码: __future__ 模块
- 《3D数学基础:图形与游戏开发 》
- 100个最常用的PHP函数(建议收藏)
- Python爬取并分析IMDB电影
- laravel Excel 3.1 列宽设置不起作用
- 项目经验不丰富、技术不突出的程序员怎么打动面试官?
- 打开outlook显示服务器内存不足,outlook无法启动,总说计算机内存不足或磁盘已满,是怎么回事?...
- java必背综合知识点总结(基础篇)
- 支付宝小程序支付(统一收单交易创建接口)
- Office 2010 中受保护的视图
- 微信小程序WebView嵌入别人网页的解决办法
- 2021-5-11【头歌】【歌手评分系统】
- git fork代码保持与原代码同步