Algorithm 高效排序算法的实际重要性
我一直在四处寻找,试图了解任何需要排序的实际应用程序及其效率问题,但找不到任何东西 我能找到或想到的唯一例子要么不需要总排序(比如寻找100个最优秀的结果或中位数),要么排序效率几乎不重要(比如每年排序一次包含学生姓名或过去交易的电子表格)Algorithm 高效排序算法的实际重要性,algorithm,performance,sorting,Algorithm,Performance,Sorting,我一直在四处寻找,试图了解任何需要排序的实际应用程序及其效率问题,但找不到任何东西 我能找到或想到的唯一例子要么不需要总排序(比如寻找100个最优秀的结果或中位数),要么排序效率几乎不重要(比如每年排序一次包含学生姓名或过去交易的电子表格) 在对web搜索结果进行排序时,只需要找到几十个排名靠前的结果并进行排序,而不是所有的互联网搜索结果,因此经典的排序算法是不需要的,也不实用 在对电子表格进行排序时,它是按三轴拉斯维加斯随机快速排序还是按插入排序几乎不重要 使用排序数组作为集合或关联数组实际
- 在对web搜索结果进行排序时,只需要找到几十个排名靠前的结果并进行排序,而不是所有的互联网搜索结果,因此经典的排序算法是不需要的,也不实用
- 在对电子表格进行排序时,它是按三轴拉斯维加斯随机快速排序还是按插入排序几乎不重要
- 使用排序数组作为集合或关联数组实际上似乎比使用哈希表效率低
更新 我偶然发现了史蒂文·斯基纳的一句话: 计算机花在分类上的时间比其他任何东西都多,历史上25%的时间在大型机上
有了一些细节,这可能是我问题的完美答案。我在哪里可以找到这些统计数据的来源,最好是关于大型机排序的种类和应用的详细信息?假设您有一个银行账户的每日交易(存款和取款)列表。每天有数以百万计的账户和数以百万计的交易。每晚,您必须更新账户以反映这些交易,计算当天应计利息,并打印一份按账户排序的报告,显示每个账户的日常活动 一种方法是按顺序浏览列表,读取事务并更新数据库中的帐户。这是可行的,但有几个缺点,包括:
当您需要将多个大型数据流合并到单个输出流中时(这些应用程序非常多),排序和合并方法非常有用。有时,其他技术可能会更快,但烟尘和合并是可靠和持久的,并且,如MapReduce所示,可以很好地扩展。想象您有一个银行账户的每日交易(存款和取款)列表。每天有数以百万计的账户和数以百万计的交易。每晚,您必须更新账户以反映这些交易,计算当天应计利息,并打印一份按账户排序的报告,显示每个账户的日常活动 一种方法是按顺序浏览列表,读取事务并更新数据库中的帐户。这是可行的,但有几个缺点,包括: