相比于笨拙的遍历数组,二分法是对数组中元素查找效率很高的一种方法,但前提是数组本身是有序的,且只能返回一个索引,这样的话,二分法虽然高效却不能对含重复元素的数组的元素索引进行全部获取,也就是说,某个元素在数组中出现2次或两次以上,二分法查找此元素索引只能随机获取其中的一个,这样的话,很不爽~。
下面给出的改进的二分法可以返回该重复元素的所有索引,并且和遍历数组方法进行了性能上的比较,数据量比较小时遍历数组用时较少,因为一方面,改进的二分法逻辑判断较多,另一方面,数据太少二分法体现不出高效;而数据量较大时,改进的二分法速度上明显优于数组遍历!
|
|