1.二分查找
【eg】假设给定一个排好顺序的数组array,然后要输入你要查找的数字,这个时候你要用二分查找的思想实现这个功能
思路:就是让数组的中间数和要查找的数字作比较,然后一左一右作为查找的范围,然后根据大小调整左边界作为中间数还是右边的数字作为边界,这里给大家一个例子,作为参考~
java
public class javaSchool {
public static void main(String[] args) {
//二分查找
int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println("请输入你要查找的数字");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int mid = -1;//中间数字
int left = 0;//左边界
int right = array.length-1;//右边界
while(left <= right) {
mid = (left + right) / 2;
if(n > array[mid]){
left = mid + 1;
}else if(n < array[mid]){
right = mid - 1;
}else{
break;
}
}
if(n == array[mid])
System.out.println("找到了。下标为:"+mid);
else
System.out.println("没有找到此数字");
}
}
看着咱们实现二分查找的功能是不是很复杂,其实!在Java中,已经给定好了一个函数功能专门用来查找,就是 : Arrays.binarySearch(数组,查找的数字),让我们用代码实现一下~
java
public class javaSchool {
public static void main(String[] args) {
//二分查找
int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println("请输入你要查找的数字");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int target = Arrays.binarySearch(array, n);
System.out.println("找到了,下标为:" + target);
}
}
这两个结果是一样的,但是Java自带功能就是香~
但是这个排序数组,也可以传三个参数:
Arrays.binarySearch(开始找的位置,结束找的位置,查找的数字);
总之,就非常方便~
2.冒泡排序
【eg】有一个给定数组arr,现在要用冒泡排序的方式,按照从小到大排序
思路:其基本思想是通过重复遍历待排序的数列,比较两个元素,如果它们的顺序错误就把它们交换过来。这个过程会重复进行,直到没有再需要交换的元素,即该数列已经排序完成。【这里用百度搜了一下】,下面是我的代码,供大家参考
java
public class javaSchool {
public static void main(String[] args) {
//冒泡排序
int[] arr = new int[]{1,3,6,2,5,4,7,9,8,10};
System.out.println("排序前");
System.out.println(Arrays.toString(arr));
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
System.out.println("排序后");
System.out.println(Arrays.toString(arr));
}
}
这样我们就实现了这个功能,但是!Java也给出了一个函数功能用来排序~那就是sort()函数,那么具体怎么用呢,大家可以参考我的代码~
java
public class javaSchool {
public static void main(String[] args) {
int[] arr = new int[]{1,3,6,2,5,4,7,9,8,10};
System.out.println("排序前");
System.out.println(Arrays.toString(arr));
Arrays.sort(arr);
System.out.println("排序后");
System.out.println(Arrays.toString(arr));
}
}
是不是极其简单!所以说Java真的很方便~
3.数组拷贝
这里就是单纯给大家展示一下Java功能有多好用~
java
public class javaSchool {
public static void main(String[] args) {
int[] arr1 = new int[]{1,2,3,4,5,6,7,8,9,10};
//拷贝数组1所有元素
int[] arr2 = Arrays.copyOf(arr1,arr1.length);
System.out.println(Arrays.toString(arr2));
//拷贝数组1中3~7位置的元素
int[] arr3 = Arrays.copyOfRange(arr2,3,7);
System.out.println(Arrays.toString(arr3));
}
}
是不是及其方便简单呢~
今天内容就到这里啦,大家可以多做练习~