我最近一直在学习很多关于算法的知识,二进制搜索因其在大量排序数据中查找项目的效率而受到赞誉。但是,如果数据一开始就没有排序怎么办?二进制搜索在什么时候可以提高顺序搜索的效率,二进制搜索必须先对给定的数组进行排序,然后再进行搜索。如果有人在我希望看到一些结果之前测试过这个,我很想看看二进制搜索在什么时候通过顺序搜索。
给定一个包含 14 个元素的数组 foo[BUFF]
1 3 6 3 1 87 56 -2 4 61 4 9 81 7
我会假设顺序排序会更有效地找到给定的数字,比如说...... 3,因为二进制搜索需要首先对数组进行排序,然后搜索数字 3。但是:
给定一个包含一千个元素的数组 bar[BUFF]
1 2 4 9 -2 3 8 9 4 12 4 56 //continued
如果我没记错的话,理论上调用排序然后二进制搜索应该更有效。