在Java中对元素进行排序和搜索
在Java中对数组中的元素进行排序和搜索非常容易。与 C 不同,我们必须让所有的函数都能工作,而Java有内置函数来完成同样的工作。要对数组进行排序,有一个 sort函数,要在已排序的数组中搜索元素,有一个 binarySearch()函数。要了解有关这些功能的更多信息,请参阅以下文章:
排序: Java中的 Arrays.sort() 示例
时间复杂度: O (n log n)
排序语法:
Arrays.sort(array_name);
搜索: Java中的 Arrays.binarySearch() 示例
使用二进制搜索数组必须事先排序
要点:
- 如果输入数组未排序,则结果未定义且为负数。
- 如果有重复,则无法保证会找到哪一个。
时间复杂度: O (log n)
二分查找的语法:
Arrays.binarySearch(array_name, key);
我们总是可以创建用户定义的函数,但是Java中的内置函数已经使用了最简单的算法,因此没有必要创建这样的函数。
示例 1:在已排序数组中查找元素。
Java
// Java program to find an
// element in an sorted array
// Importing util files
import java.util.*;
public class Gfg {
// Main function
public static void main(String args[]) throws Exception
{
// Sorted Array
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Using binarySearch to search for desired element
int index = Arrays.binarySearch(array, 2);
// Printing result
if (index >= 0)
System.out.println("Element 2 found at index: "
+ index);
else
System.out.println("Element not found");
}
}
Java
// Java program for Sorting an array and
// searching for an element in the
// sorted array
// Importing util files
import java.util.*;
public class Gfg {
// Main function
public static void main(String args[]) throws Exception
{
// Unsorted Array
int array[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
// Sorting the array
Arrays.sort(array);
// Printing sorted array
System.out.println("Sorted Array:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
// Using binarySearch to search for desired element
int index = Arrays.binarySearch(array, 0);
// Printing result
if (index >= 0)
System.out.println("Element 2 found at index: "
+ index);
else
System.out.println("Element not found");
}
}
输出:
Element 2 found at index: 1
示例 2:对数组进行排序并在排序后的数组中搜索元素。
Java
// Java program for Sorting an array and
// searching for an element in the
// sorted array
// Importing util files
import java.util.*;
public class Gfg {
// Main function
public static void main(String args[]) throws Exception
{
// Unsorted Array
int array[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
// Sorting the array
Arrays.sort(array);
// Printing sorted array
System.out.println("Sorted Array:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
// Using binarySearch to search for desired element
int index = Arrays.binarySearch(array, 0);
// Printing result
if (index >= 0)
System.out.println("Element 2 found at index: "
+ index);
else
System.out.println("Element not found");
}
}
输出:
Sorted Array:
1 2 3 4 5 6 7 8 9 10
Element 2 found at index: 1