Java 中常见的排序算法(3)

注意:在MR程序中,其中有两个阶段使用到了归并,一个是在缓冲区溢写小文件时,最后会将多个小文件归并成一个大文件,另一个则是在reduce拉去map处理的数据到本地是会生成很多小文件,此时也会做一次归并。

7. 二分法查找数据

  原理:在已经排好序的基础上,将数组元素折半查找。
  原理图:

Java  中常见的排序算法

  代码实现:

public static void main(String[] args) { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; // 二分法查数据 int num = new Scanner(System.in).nextInt(); //查找的数 int start = 0; int end = arr.length - 1; int middle = (start + end) / 2; while (true) { //如果end<start说明全部找完也没有找到 if (end < start) { System.out.println(num + "不在此数组中"); break; } if (arr[middle] > num) { end = middle - 1; } else if (arr[middle] < num) { start = middle + 1; } else { System.out.println("这个数的索引下标为" + middle); break; } middle = (start + end) / 2; }

试试

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9a2b7ab9ffebf6d6c4ce6299080ece8b.html