Java程序实现字符数组上的二分查找


在本文中,我们将学习如何使用Java在字符数组上实现二分查找。字符数组上的二分查找可以通过使用Arrays.binarySearch()方法来实现java.util包。如果该字符元素存在于数组中,则此方法返回所需字符元素的索引,否则返回(-(插入点) - 1),其中插入点是该元素将在数组中插入的位置。

问题陈述

用Java编写一个程序,在字符数组上实现二分查找

输入

'b', 's', 'l', 'e', 'm'

输出

The sorted array is: b e l m s
The character e is at index 1
The character z is at index -6

在字符数组上实现二分查找的步骤

以下是字符数组上实现二分查找的步骤:

  • 首先定义一个包含未排序元素的字符数组,我们将使用Arrays.sort()对字符数组进行排序。
  • 使用for循环遍历数组以显示排序后的字符。
  • 调用Arrays.binarySearch()方法在排序后的数组中搜索特定字符。
  • 检查返回的索引,如果找到该字符,则返回索引。
  • 如果未找到该字符,则返回-1

Java程序实现字符数组上的二分查找

以下是字符数组上实现二分查找的Java程序:

import java.util.Arrays;
public class Demo {
   public static void main(String[] args) {
      char c_arr[] = { 'b', 's', 'l', 'e', 'm' };
      Arrays.sort(c_arr);
      System.out.print("The sorted array is: ");
      for (char i : c_arr) {
         System.out.print(i + " ");
      }
      System.out.println();
      int index1 = Arrays.binarySearch(c_arr, 'e');
      System.out.println("The character e is at index " + index1);
      int index2 = Arrays.binarySearch(c_arr, 'z');
      System.out.println("The character z is at index " + index2);
   }
}

输出

The sorted array is: b e l m s
The character e is at index 1
The character z is at index -6

代码解释

上述程序首先创建一个字符数组c_arr[],其中包含未排序的元素,例如'b''s''l''e''m'。它使用java.util包中的Arrays.sort()对该数组进行排序,然后使用for循环打印排序后的字符。接下来,它使用Arrays.binarySearch()搜索字符'e',该方法找到它并显示其索引。该程序还查找字符'z',该字符不在数组中,该方法返回一个负值,指示'z'将在排序数组中的位置。总的来说,此程序有效地演示了如何在Java中对字符数组执行二分查找。

更新于: 2024年9月29日

718 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告