You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

O(nlogn)算法会花费多长时间?

假设有一个包含 n 个元素的数组,使用 O(n log n) 算法对其排序。代码示例如下:

#include <stdio.h>

void merge(int arr[], int l, int m, int r) {
    int i, j, k;
    int n1 = m - l + 1;
    int n2 = r - m;

    /* create temp arrays */
    int L[n1], R[n2];

    /* Copy data to temp arrays L[] and R[] */
    for (i = 0; i < n1; i++)
        L[i] = arr[l + i];
    for (j = 0; j < n2; j++)
        R[j] = arr[m + 1 + j];

    /* Merge the temp arrays back into arr[l..r]*/
    i = 0; /* Initial index of first subarray */
    j = 0; /* Initial index of second subarray */
    k = l; /* Initial index of merged subarray */
    while (i < n1 && j < n2) {
        if (L[i] <= R[j]) {
            arr[k] = L[i];
            i++;
        } else {
            arr[k] = R[j];
            j++;
        }
        k++;
    }

    /* Copy the remaining elements of L[], if there are any */
    while (i < n1) {
        arr[k] = L[i];
        i++;
        k++;
    }

    /* Copy the remaining elements of R[], if there are any */
    while (j < n2) {
        arr[k] = R[j];
        j++;
        k++;
    }
}

void merge_sort(int arr[], int l, int r) {
    if (l < r) {
        // Same as (l+r)/2, but avoids overflow for 
        // large l and h
        int m = l + (r - l) / 2;

        // Sort first and second halves
        merge_sort(arr, l, m);
        merge_sort(arr, m + 1, r);

        merge(arr, l, m, r);
    }
}

int main() {
    int arr[] = {12, 11, 13, 5, 6, 7};

    int n = sizeof(arr) / sizeof(arr[0]);

    merge_sort(arr, 0, n - 1);

    printf("Sorted array is \n");
    for (int i = 0; i < n; i++)
        printf("%d ", arr[i]);
    printf("\n");

    return 0;
}

该算法的时间复杂度为 O(n log n),

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

2022下半年《软考-系统架构设计师》备考经验分享

[](https://files.mdnice.com/user/32396/c3c54e0a-620c-478d-8283-91abf93ac384.png)软考高级比中级的难度要大一些。中级考试为基础知识和应用技术两科,各科目考试时间均为2.5小时。高级考试主要多了论文,考试时... 主要包括:软件开发生命周期、软件开发过程模型(瀑布模型、螺旋模型、原型模型等)、需求管理、开发管理、软件系统设计 (易用性设计、设计模式)、软件系统建模(结构化设计、UML)、软件系统构建、软件测试(黑盒、白盒...

基于 LoserTree 的 Paimon 多路归并优化

(https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/38ab8e6be7c041d894c0742ac3f29c5b~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1714666884&x-signature=hs7WZ4oaru47Bnk0pY7fUfWw3zw%3D)多路归并的算法主要有堆排序、胜者树和败者树等。在这三种算法中,堆排序每次进行堆调整都需要和左右子节点进行比较,比较次数为 2logN,而胜者树和败者树调整时的比较次数都是 logN,区别是胜者树需要和兄弟节...

字节跳动 EB 级 Iceberg 数据湖的机器学习应用与优化

训练一个机器学习模型可能需要数周甚至数月的时间。然而,如今基于更好的模型架构和高速显卡,我们可以在相对较短的时间内完成训练过程并进行 A/B 测试验证。另外,**特征工程** **越来越自动化、** **端到端** **化... 通过加速特征工程和调研过程缩短模型迭代周期、提高算法的开发效率。 # 存储样本方案演进## **传统存储样本方案**![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/e...

基于 LoserTree 的 Paimon 多路归并优化

=&rk3s=8031ce6d&x-expires=1714666849&x-signature=OMC6%2Bj7W3%2F2SNCK%2FXYAbZ7VMZ0k%3D)3. **复杂度分析**假设待排序列数为 N,待排元素总个数为 n,则:1)空间复杂度为 O(N);2)整体排序完成的时间复杂度为 O(nlogN);3)单次调整的时间复杂度为 O(logN),由于需要和两个子节点都进行比较,因此单次调整的比较次数为 2logN。 **LoserTree**LoserTree 也是一种常用于归并排序算法中的数据结构...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

O(nlogn)算法会花费多长时间? -优选内容

2022下半年《软考-系统架构设计师》备考经验分享
[](https://files.mdnice.com/user/32396/c3c54e0a-620c-478d-8283-91abf93ac384.png)软考高级比中级的难度要大一些。中级考试为基础知识和应用技术两科,各科目考试时间均为2.5小时。高级考试主要多了论文,考试时... 主要包括:软件开发生命周期、软件开发过程模型(瀑布模型、螺旋模型、原型模型等)、需求管理、开发管理、软件系统设计 (易用性设计、设计模式)、软件系统建模(结构化设计、UML)、软件系统构建、软件测试(黑盒、白盒...
基于 LoserTree 的 Paimon 多路归并优化
(https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/38ab8e6be7c041d894c0742ac3f29c5b~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1714666884&x-signature=hs7WZ4oaru47Bnk0pY7fUfWw3zw%3D)多路归并的算法主要有堆排序、胜者树和败者树等。在这三种算法中,堆排序每次进行堆调整都需要和左右子节点进行比较,比较次数为 2logN,而胜者树和败者树调整时的比较次数都是 logN,区别是胜者树需要和兄弟节...
字节跳动 EB 级 Iceberg 数据湖的机器学习应用与优化
训练一个机器学习模型可能需要数周甚至数月的时间。然而,如今基于更好的模型架构和高速显卡,我们可以在相对较短的时间内完成训练过程并进行 A/B 测试验证。另外,**特征工程** **越来越自动化、** **端到端** **化... 通过加速特征工程和调研过程缩短模型迭代周期、提高算法的开发效率。 # 存储样本方案演进## **传统存储样本方案**![picture.image](https://p3-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/e...
基于 LoserTree 的 Paimon 多路归并优化
=&rk3s=8031ce6d&x-expires=1714666849&x-signature=OMC6%2Bj7W3%2F2SNCK%2FXYAbZ7VMZ0k%3D)3. **复杂度分析**假设待排序列数为 N,待排元素总个数为 n,则:1)空间复杂度为 O(N);2)整体排序完成的时间复杂度为 O(nlogN);3)单次调整的时间复杂度为 O(logN),由于需要和两个子节点都进行比较,因此单次调整的比较次数为 2logN。 **LoserTree**LoserTree 也是一种常用于归并排序算法中的数据结构...

O(nlogn)算法会花费多长时间? -相关内容

保姆级人工智能学习成长路径|社区征文

大家好,我是 herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池安全恶意程序检测第一名,科大讯飞恶意软件分类挑战赛第三名,CCF恶意软件家族分类第4名,科大讯飞阿尔茨海默综合症预测赛第4名,Datacon大数据安全分析比赛第五名,科大讯飞事件抽取挑战赛第七名。拥有六项发明专利。对机器学习和深度学习拥有自己独到的见解。今天给大家分享的是保姆级人工智能学习成长路径,希望能对大...

观点 | 为什么在数据驱动的路上,AB实验值得信赖?(上)

具体可以在Google深入了解一下。### **2、实验结果可信性**有数字容易,让人信赖的数字需要下功夫。开启实验容易,实验报告有数字很容易,这些数字的可信度,这些数字让人信赖更重要,需要花费更长的时间。大... 但是一段时间过去后,用户对于新的改版不再敏感,实验组效果回落,显著性可能会下降,最后趋于稳定。**足够的样本量能保证一个合理的实验周期**,可以使用我们的流量计算器中计算流量和实验周期,从而避免这种新奇效应...

一口气看完43个关于 ElasticSearch 的使用建议

不建议使用 `bucket\_sort`进行聚合深分页查询。**ES 的高 Cardinality 聚合查询非常消耗内存,超过百万基数的聚合很容易导致节点内存不够用以至 OOM。`bucket\_sort`使用桶排序算法,性能问题主要是由于它需要在内存中缓存所有的文档和聚合桶,然后才能进行排序和分页,随着文档数量增多和分页深度增加,性能会逐渐变差,有深分页问题。因为桶排序需要对所有文档进行整体排序,所以它的时间复杂度是 O(NlogN),其中 N 是文档总数。...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

一个老程序员的计算机视觉蹒跚学习之路| 社区征文

开启了老猿学习 Python 并分享学习体会之路,先是 Python 基础,接着是 Python 爬虫,然后是 Python 图像界面开发的 PyQt,再接着是 Python 的音视频剪辑 Moviepy,前后花费了 1 年半左右的时间,这期间发布了近 1000 篇... 感觉帮不上他多少忙,但他给我打开了计算机视觉这扇门,于是从 2020 年 8 月开启了计算机视觉的学习之路。### 二、计算机视觉涵盖的范围在介绍学习经历前,我们先简单介绍一下计算机视觉,而在研究计算机视觉前,...

2023 年大模型技术基础架构盘点与开源工作速览|社区征文

算法到激动人心的应用案例,从推动科研的新边界到开拓商业的新天地,大模型技术的跃进式发展,俨然成为推动行业革新、塑造未来商业竞争力的核心动力,为各行各业带来了前所未有的机遇和挑战。“乘骐骥以驰骋兮,来吾道夫先路”,转眼间,2023 年已接近尾声,在这里,从 2023 年的技术盘点中抽丝剥茧,领略一些至关重要的大模型技术架构与优秀开源工作。 # 一、模型基本架构在模型架构方面,国内外的大模型普遍为 Transformer 架...

音视频技术如何为元宇宙提供全真稳的全新体验之漫话腾讯云音视频 | 社区征文

通过传统算法和深度学习模型消除片源中的噪点和压缩效应,增强细节去除模糊,提升色彩质量,并解决由于分辨率和帧率低面卡顿不清晰等缺陷。![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/08563... 花费了大量时间去排查原因。因为客户需要支持微信小程序终端,腾讯云音视频的微信解决方案在某些场景中具备一定的优势,因此最终项目选择了腾讯云音视频。笔者认为腾讯云音视频团队可以在这个方向上继续发力,因为目前...

2022年终总结-两年Androider的技术成长之路|社区征文

(https://juejin.cn/post/7116152613409816612)上半年我沉浸在读各类技术书籍中,但是后半年的我几乎放弃了读书,转而投身到另外一个学习渠道上:>之前的年中和年终总结写的大体是参加了多少次活动,白嫖了多少礼品... 自己以前理解的很多误区和好多疑难点几乎在视频里面都会提及到,年底面试的时候把在里面学到的技术吹了一波哈哈,效果不错技术成长记录并没有开始多长时间,后续会花费大部分时间记录这部分文档。等到明年的年中总结...

火山引擎谭待:数据驱动x敏捷开发,业务高速增长的双引擎

如果说推荐算法、大数据技术是支撑字节跳动业务发展的技术能力,那么其迭代创新的核心技术理念又是什么? 10月27上午,在「稀土开发者大会」上,火山引擎总经理谭待以《数据驱动x敏捷开发,业务高速增长的双引擎》为主题... 每一个飞轮从静止到转动起来需要花费力气,但是由于他们组合在一起,所以每一圈的转动都不会白费。一旦有一个齿轮转动起来,整个系统都会跟着转动,越转越快。 构建数据驱动的飞轮 回到数据驱动这个话题,我们认为同样如...

企业级数据平台云原生转型之路|社区征文

DolphinScheduler 等作业调度系统,来提交运行作业,那在平台实现中,通常会选择将开源组件来包装一下,然后在控制台中提供相应的调度策略,比如在配置完数据开发的任务之后,紧接着就会配置调度策略,是立即执行,还是周期... 我们花了很长时间来做数据标注,后来随着平台体系化建设逐步完善,对于数据的要求越来越高,才会出现了数据治理方面的专项内容。 通常,**数据治理是作为一个企业内部战略来定义的,如果没有将数据治理工作作为从...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询