去掉所有if,1987年排序变体跑赢Shell三倍

原创
alex 36分钟前 阅读数 1 #头条
一个37年前的排序老变体,换个写法就能快三倍——这事你信吗? 1987年的一种Shell排序变体,在去除所有条件分支、改写为无跳转实现后,性能达到标准Shellsort的3倍。不是算法在进步,是算法终于等到了对它的硬件。现代CPU的分支预测器就是为了减少流水线停顿而生的,把老算法改写成branch-free形式,等于让它重新适配今天的芯片。 经典算法的价值经常被实现方式遮蔽,不是它不行,是我们没把它逼到极限。这个变体叫utah_sort,代码已开源在GitHub,那份1987年的"沉睡代码",在现代硬件上跑出了完全不同的气质。

原文:A 1987 Shellsort variant is 3x faster than Shellsort when branch-free · 来源:Hacker News

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除