排序:从计算机到人类社会的秩序艺术
排序的重要性与起源
排序是计算机的核心功能之一,甚至可以说,排序推动了计算机的诞生。在19世纪后期,美国人口每十年增长30%,人口普查的调查项目从1870年的5项增加到1880年的200多项。1880年的人口普查制表工作耗时8年,几乎到1890年新普查开始时才完成。为解决这一困境,发明家赫尔曼·霍尔瑞斯受打孔火车票的启发,发明了打孔卡片系统和霍尔瑞斯机器来计数和排序。1889年他获得专利,政府在1890年人口普查中采用了该机器。后来,霍尔瑞斯的公司合并成为计算制表记录公司,最终更名为国际商业机器公司(IBM)。
排序在计算机发展的下一个世纪继续发挥着推动作用。第一台“存储程序”计算机编写的第一个代码就是一个高效排序程序。到20世纪60年代,一项研究估计,全球超过四分之一的计算资源都用于排序。排序对于处理各种信息至关重要,无论是寻找最大或最小、最常见或最罕见的元素,还是进行计数、索引、标记重复项,通常都从排序开始。
排序不仅在计算机领域重要,在人类信息体验中也起着关键作用。我们的电子邮件收件箱通常按接收时间显示前50条消息,Yelp上的餐厅按距离或评分排序,博客文章按日期排序,Facebook新闻源、Twitter信息流和Reddit主页都按特定规则排序。谷歌和必应等搜索引擎实际上是排序引擎,它们的优势在于能很好地对网页进行排序,只显示最相关的10个结果。
排序的困境:规模之痛
排序存在规模不经济的问题。随着排序规模的增大,单位排序成本不降反升。例如,整理一个有一百本书的书架比整理两个各有五十本书的书架花费的时间更长,因为要整理的物品更多,每个物品可能放置的位置也更多。
为减少排序的
超级会员免费看
订阅专栏 解锁全文
61

被折叠的 条评论
为什么被折叠?



