Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >数组排序(String [])的时间复杂度是多少?

数组排序(String [])的时间复杂度是多少?
EN

Stack Overflow用户
提问于 2020-10-28 06:28:53
回答 1查看 3.1K关注 0票数 4
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String str[] = {"Hello", "World", "John", "Doe"};
Arrays.sort(str);
System.out.prinltn(Arrays.toString(str));

我知道Arrays.sort(int[])将具有O(nlgn)的时间复杂性。但是字符串数组呢。因为排序字符串数组在内部使用compareTo函数来比较两个字符串。它会改变方程吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-28 06:36:07

说:排序是O(n logn)的问题是,这是一个不完整的、因此不明确的、未定义的语句。目前还不清楚这意味着什么。问题是:您没有定义n是什么。

现在,在实践中,n通常在上下文中是显而易见的。例如,如果我说:“对整数数组进行排序是O(n logn),假设是最优排序算法”,那么几乎所有听到这一结果的人都会立即意识到,虽然我没有明确指出n是什么,但很明显,我的意思是:n=该数组中的in数。

让我们回到你的问题:现在n不再清楚了。

N是数组中字符串的#吗?N是该数组中所有字符串的平均字符#吗?

我们讨论的是两个独立的变量。因此,要正确地描述这个问题的大O表示法的性能特征,您可以这样说:

例如:str = {"Hello", "World", "John", "Doe"}

  • Let nstr数组中的元素数,

  • str数组中字符串的平均#H 217H 118,然后在该数组上调用Arrays.sort(str)将具有O(m * n log n).

的性能特征。

之所以是O(m*n logn),是因为排序算法本身将运行O(n logn)比较操作来执行排序。每个比较操作都需要O(m)时间来完成,尽管这是最坏的情况:给定,比方说,HelloWorld,即使对于这两个操作,比较只在一个步骤之后就完成了;算法对HW进行比较,并立即回答,甚至从来不看elloorld。但是如果字符串是Hello1Hello2Hello3Hello4,那么每次比较两个字符串时,这都是一个保证的5‘步骤’,并且会有O(n logn)比较。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64574941

复制
相关文章
排序算法时间复杂度的下界
排序,涉及到被排序的序列和排序的方法。(比较)排序算法时间的下界对被排序的序列和排序方法做了以下限制
sea-wind
2019/07/31
1.1K0
排序算法时间复杂度的下界
排序时间复杂度对比
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import random 4 import datetime 5 6 #插入式排序 7 def insert_sort(list,result): 8 cnt = len(list) 9 i=0 10 for i in range(cnt): 11 right = list[i] 12 result.append(right) 1
py3study
2020/01/19
5930
排序时间复杂度对比
常用的排序算法和时间复杂度
1. 数据结构部分 数据结构中常用的操作的效率表 通用数据结构查找  插入   删除 遍历  数组 O(N)O(1)O(N)—有序数组O(logN)O(N)O(N)O(N)链表 O(N)O(1)O(N)—有序链表O(N)O(N)O(N)O(N)二叉树O(logN)O(logN)O(logN)O(N)二叉树(最坏)O(N)O(N)O(N)O(N)红黑树O(logN)O(logN)O(logN)O(N)2-3-4树O(logN)O(logN)O(logN)O(N)哈希表O(1)O(1)O(1)—专用数据结构
xiangzhihong
2018/02/01
2.8K0
几种常见排序算法时间复杂度[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说几种常见排序算法时间复杂度[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/08/14
5.7K0
时间复杂度中的log(n)底数到底是多少?
假设有底数为2和3的两个对数函数,如上图。当X取N(数据规模)时,求所对应的时间复杂度得比值,即对数函数对应的y值,用来衡量对数底数对时间复杂度的影响。
城市中的游牧民族
2019/02/21
2.9K0
时间复杂度中的log(n)底数到底是多少?
常见排序算法的时间复杂度和空间复杂度表
lexingsen
2022/02/25
1.2K0
常见排序算法的时间复杂度和空间复杂度表
数据结构算法的时间复杂度_数据结构中排序的时间复杂度
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说数据结构算法的时间复杂度_数据结构中排序的时间复杂度,希望能够帮助大家进步!!!
Java架构师必看
2022/08/14
1K0
数据结构算法的时间复杂度_数据结构中排序的时间复杂度
常用算法排序-时间空间复杂度表
?
sr
2018/08/20
4510
常用算法排序-时间空间复杂度表
最大的 String 字符长度是多少?
String 类可以说是在 Java 中使用最频繁的类了,就算是刚刚接触 Java 的初学者也不会陌生,因为对于 Java 程序来说,main 方法就是使用一个 String 类型数组来作为参数的(String[] args)。对于这样一个频繁使用的类,String 字符串可以有多长呢?十万字符?一百万字符?还是无限的呢?
武培轩
2020/02/12
5.4K0
【算法复习3】时间复杂度 O(n) 的排序 桶排序 计数排序基数排序
将要排序的数据分到几个有序的桶里, 每个桶里的数据再单独进行排序。 桶内排完序之后,再把每个桶里的数据按照顺序依次取出, 组成的序列就是有序的了。
韩旭051
2021/04/14
1.9K0
【算法复习3】时间复杂度  O(n) 的排序 桶排序 计数排序基数排序
String还有长度限制?是多少?
话说Java中String是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译中还有规范,而且有的家人们在面试的时候也遇到了。
程序员追风
2021/01/14
2.8K0
String还有长度限制?是多少?
Java 几种排序算法 与时间空间复杂度
//1.冒泡 2.插入 3.选择 4.快速 5.归并 6.希尔 public class Sort { /** * 冒泡排序 每次将最大的排到数组末尾 * 时间复杂度:n2 空间复杂度:1 */ private void bubbleSort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length -
heasy3
2020/08/01
1.2K0
Java 几种排序算法  与时间空间复杂度
Python-排序-有哪些时间复杂度为O(n)的排序算法?
人到中年,容易变得油腻,思想懒惰,身体就容易发胖。为了摆脱中年油腻,不如和我一起学习算法来烧烧脑子,燃烧你的卡路里。
somenzz
2020/12/10
1.5K0
Python-排序-有哪些时间复杂度为O(n)的排序算法?
传说中线性时间复杂度的排序算法
谈到排序该怎么算,直觉上应该都要元素之间进行比较才能排出顺序,比较是不可或缺的,但偏偏有的排序算法可以不用比较,比如传说中的“睡眠排序”(n个线程同时睡觉,按照醒来的顺序排序)。因此排序算法可以分成基于比较的排序和非比较的排序2大类。
Jean
2019/10/23
1.6K0
传说中线性时间复杂度的排序算法
堆排序详解(含对时间复杂度的分析)
一、堆 1.概念 堆的物理结构(我们能看到的)是一个数组 堆的逻辑结构(我们想象出来的)是一个完全二叉树 2.特性 1.结构性:用数组表示完全二叉树 2.有序性: 任一结点的关键字是其子树所有结点的最大值(最小值) 而拥有最大值在顶叫做 大堆 拥有最小值在顶叫做 小堆 3. 父子结点 因为都是由数组表示的完全二叉树 而数组对应下标 左孩子下标 =父亲节点下标*2+1 右孩子下标 =父亲节点下标*2+2 二、向下调整算法 1.概念 向下调整算法 以小堆为例, 当满足左子树与右子树都
lovevivi
2022/11/10
1.8K0
堆排序详解(含对时间复杂度的分析)
各种排序的稳定性,时间复杂度、空间复杂度、稳定性
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
海仔
2019/10/28
6870
各种排序的稳定性,时间复杂度、空间复杂度、稳定性
KMP算法的时间复杂度与next数组分析
KMP 算法是一种改进的字符串匹配算法,用于判断一个字符串是否是另一个字符串的子串
Leophen
2019/08/23
1.9K0
KMP算法的时间复杂度与next数组分析
分治思想 : 并归排序与其时间复杂度
这种把大问题分解成小问题来解决(治理) [ Divide And Conquer 我觉得Conquer应该翻译成解决比较好 ] 的方法被称为 ‘ 分治 ’
执生
2020/09/27
5580
算法之时间复杂度&几种排序算法探究 顶
归并排序的细节讲解与复杂度分析 时间复杂度O(N*logN),额外空间复杂度O(N)
须臾之余
2019/08/22
4720
排序算法的 Python 实现以及时间复杂度分析
我用 Python 实现了冒泡排序、选择排序、插入排序、归并排序、快速排序。然后简单讲了讲快速排序的优化,我们可以通过小数组采用插入排序来减少递归的开销;对于有一定顺序的数组,我采用三数取中来提高性能;对于包含大量重复数的数组,我用了三路快速排序来提高性能。 最后,我把这些排序算法应用在随机数组、升序数组、降序数组、包含大量重复数的数组上,比较了一下它们的耗时。
马修
2021/01/21
1.7K0
排序算法的 Python 实现以及时间复杂度分析

相似问题

sleep排序的时间复杂度是多少?

272

std::hash<string>的时间复杂度是多少?

124

合并排序数组,最佳的时间复杂度是多少?

21

这个排序问题的时间复杂度是多少?

114

就地快速排序的时间复杂度是多少?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文