排好1万本书,需要多长时间?| 1分钟科学05
如果你的书架上有10000本书,有一天你想把它们整理一次,你大约需要多长时间呢?
这个问题等价于给10000个大小不同的数排序,问需要多少步骤。
排序有很多方法,比如冒泡法:
- 首先把所有的数字排成一排;
- 先让前两个数比较,如果小的在前就不动;
- 如果大的在前,就把这两个数调换一下位置;
- 然后比较第二、第三个数,依次类推。
- 一轮之后,你就能把最大的数放在最后了。
- 只要连续冒泡9999轮,就能排好一万个数。
但是,在最不利的情况下,排好10000本书,你需要进行大约5000万次比较,1秒钟比较一次,大约需要一年半的时间。冒泡法不是一个特别快速的方法。
好的算法能大大节约你的时间,比如你可以使用归并算法。
- 首先把10000个数随机分成5000组,每组2个数。
- 把每一组的2个数按大小排好序。
- 再把相邻的两组融合,每组4个数排好序。
- 依次类推,直到融合为1组,排好10000个数。
使用这种方法,排好10000本书,你大约需要比较13万次,只要一天半的时间。
其实,你也可以所有的书往天上一扔,掉下来看是不是排好序了,如果没有就重新扔。使用这种情况,在最优的情况下,一秒就能排好。但一般情况下,都会耗尽一生。
好的算法不光要快速,更要稳定。
最新评论
推荐文章
作者最新文章
你可能感兴趣的文章
Copyright Disclaimer: The copyright of contents (including texts, images, videos and audios) posted above belong to the User who shared or the third-party website which the User shared from. If you found your copyright have been infringed, please send a DMCA takedown notice to [email protected]. For more detail of the source, please click on the button "Read Original Post" below. For other communications, please send to [email protected].
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。
版权声明:以上内容为用户推荐收藏至CareerEngine平台,其内容(含文字、图片、视频、音频等)及知识版权均属用户或用户转发自的第三方网站,如涉嫌侵权,请通知[email protected]进行信息删除。如需查看信息来源,请点击“查看原文”。如需洽谈其它事宜,请联系[email protected]。