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中对字符数组执行二分查找。
广告