O(1),O(logn),O(n),O(nlogn),O(n2)是用于表示算法的时间复杂度的一个函数。

时间复杂度常用大O符号表述,O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系,反应随着数据增值时间复杂度的渐变过程。

比如我们统计排序算法复杂度时的对比表:

常数阶O(1)
O(1)就是最低的时空复杂度了,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。 哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到目标(不考虑冲突的话)

对数阶O(logn)
O(logn),当数据增大n倍时,耗时增大logn倍(这里的log是以2为底的,比如,当数据增大256倍时,耗时只增大8倍,是比线性还要低的时间复杂度)。二分查找就是O(logn)的算法,每找一次排除一半的可能,256个数据中查找只要找8次就可以找到目标。

线性阶O(n)
O(n),就代表数据量增大几倍,耗时也增大几倍。比如常见的遍历算法。

线性对数阶O(nlogn)
O(nlogn)同理,就是n乘以logn,当数据增大256倍时,耗时增大256*8=2048倍。这个复杂度高于线性低于平方。归并排序就是O(nlogn)的时间复杂度。

平方阶O(n2)
O(n^ 2),就代表数据量增大n倍时,耗时增大n的平方倍,这是比线性更高的时间复杂度。比如冒泡排序,就是典型的O(n^2)的算法,对n个数排序,需要扫描n×n次。

立方阶O(n3),…,

k次方阶O(nk),

指数阶O(2n)。

Java算法中O(1),O(logn),O(n),O(nlogn),O(n2)是什么相关推荐

  1. JAVA 算法中Map 使用技巧,持续更新,边学边更

    1 在做一道必须统计出现次数的题目中,使用到了map函数 Map<Integer, Integer> count = new HashMap(); for (int i = 0; i &l ...

  2. 分治法在排序算法中的应用(JAVA)--快速排序(Lomuto划分、Hoare划分、随机化快排)

    分治法在排序算法中的应用--快速排序 时间复杂度:平均O(nlogn),最坏O(n^2) 如果说归并排序是按照元素在数组中的位置划分的话,那么快速排序就是按照元素的值进行划分.划分方法由两种,本节将主 ...

  3. Java虚拟机规范阅读(二)IEEE754简介以及Java虚拟机中的浮点算法

    什么是浮点数 在计算机系统的发展过程中,曾经提出过多种方法表达实数.典型的比如相对于浮点数的定点数(Fixed Point Number).在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置 ...

  4. java 大整数编程_Java编程--RSA算法中的大整数运算

    Java编程–RSA算法中的大整数运算 RSA原理浅析 RSA是利用陷门单向函数实现的,其安全基础依赖于大整数的分解问题的难解性 算法过程 为了加深对RSA算法的了解,接下来通过简单的一个例子来分析一 ...

  5. Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(

    2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...

  6. java 数组中差值最大数对,[算法题] 求数组有序后相邻元素之间的最大差值

    1. 题目要求 给定无序数组(此数组是long类型的数组,但以下示例只列一些小一点的数),例如: [3, 1, 12, 9, 3, 7, 1, 4, 7, 8, 10] 求数组有序后相邻元素之间的最大 ...

  7. Java Jvm 中的垃圾回收机制中的思想与算法 《对Java的分析总结》-四

    Java中的垃圾回收机制中的思想与算法 <对Java的分析总结>-四 垃圾回收机制 中的思想与算法 引用计算法 给对象中添加一个引用计数器,每当一个地方引用它的时候就将计数器加1,当引用失 ...

  8. java开发过程中几种常用算法

    排序算法 排序算法中包括:简单排序.高级排序 简单排序 简单排序常用的有:冒泡排序.选择排序.插入排序 冒泡排序代码如下: 1 private static void bubbleSrot(int[] ...

  9. java面试会问到的问题吗_[转载]java面试中经常会被问到的一些算法的问题

    Java面试中经常会被问到的一些算法的问题,而大部分算法的理论及思想,我们曾经都能倒背如流,并且也能用开发语言来实现过, 可是很多由于可能在项目开发中应用的比较少,久而久之就很容易被忘记了,在此我分享 ...

  10. JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA)

    JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA) 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合.. 当 n = 4 ...

最新文章

  1. php 解决方案,php优化解决方案
  2. hadoop生态搭建(3节点)-06.hbase配置
  3. 在 ASP.NET 网页中不经过回发而实现客户端回调
  4. JDBC编程专题4之JDBC驱动程序类型
  5. XenServer 6.5实战系列之四:XenServer 6.5 Installation
  6. Laravel POST请求API接口 使用validate表单验证返回欢迎页
  7. 【Python】skimage模块
  8. 【RabbitMQ】一文带你搞定RabbitMQ延迟队列
  9. MySQL分区:range(范围)list(in)columns(多字段)hash(散列)key(非数值型的hash)复合(hash key)
  10. 12036火车票小工具,希望大家都能顺利回家
  11. css新奇技术及其未来发展
  12. android获取自适应高度,Android中oncreate中获得控件高度或宽度的实现方法
  13. c++对数函数_DS-K1T105M-C 海康威视考勤门禁一体机 支持刷卡+密码 DS-K1T105E/M/C-C
  14. Kotlin学习笔记 第二章 类与对象 第十节 内部类嵌套类
  15. pyplot 画多个图时搅合到了一起_这些认数字游戏,宝宝最喜欢,家长可以和宝宝一起玩...
  16. macOS安装mysql后,进入mysql出现command not found
  17. 计算机apk文件无法打开,【电脑怎么打开apk文件】电脑如何打开apk文件_电脑上怎么打开apk-系统城...
  18. 义隆单片机可用c语言写了吗,义隆单片机编程时应注意的几点
  19. 支付宝小程序审核与发布
  20. vue尚品汇商城项目-day00【项目介绍:此项目是基于vue2的前台电商项目和后台管理系统】

热门文章

  1. 抖音用什么编程语言_抖音是哪个公司的 抖音app所属公司 是哪个公司开发的
  2. 模拟轮盘抽奖游戏:一等奖、二等奖、三等奖
  3. Java实战---搜搜移动业务大厅
  4. Probabilistic Road Map
  5. linux .deb文件安装
  6. html5设置谷歌浏览器兼容性,google浏览器
  7. unexpected inconstancy
  8. uushare.com(原uubox.net)的功能简介
  9. Excel 表格数据去重
  10. 爬虫,酷我音乐接口解析