在 Flutter ConstraintLayout 中用到了计数排序,众所周知,计数排序在某些场景下可以说是最快的排序算法,它有时甚至不需要元素间两两比较。但它有个最大的问题,它不通用!只适合对小范围的整数进行排序。
于是这段时间我一直在寻思着能不能改进它,让它通用呢,终于今天灵感爆发,我做到了!
因为我姓陈,所以我把它命名为 Chen Sort。看看它的性能表现吧:
空间复杂度恒为:O(n),时间复杂度为 O(nlogn),在最好的情况下,不需要元素间两两比较就能排好序。且它是稳定的。
性能测试
众所周知全世界公认的最快的通用排序算法是快排,我们来和它做下性能对比吧,基准如下:
随机生成若干个范围为 [1,4294967296] 的正整数,使用 Chen Sort 和快排分别排序。
这里没有生成负数,负数性能会下降一些,但仍比快排快很多。
100 个随机数
100_compare.png
平均快了 10%。
10000 个随机数
10000_compare.png
平均快了 60% 多。
100000 随机数
100000_compare.png
平均快了 80% 多。
1000000 随机数
1000000_compare.png
平均快了 20% 左右。
目前的实现语言是 Dart,晚点用 Java 实现一下,并和 Tim Sort 做个对比。应该也会快很多。
代码已开源到 GitHub,目前放在 Flutter ConstraintLayout 的 example/chen_sort.dart 中,后续再把它抽出来。欢迎多多转发。
AI大模型学习福利
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
四、AI大模型商业化落地方案
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量