2020.7.11
一、今日学习内容
1、学习第三章:查找
(1)顺序查找
1 public class OrderFind { 2 public static void main(String[] args) { 3 int[] ary= {2,3,4,5,9,7,8}; 4 int find=5; 5 int count=-1; 6 for(int i=0;i<ary.length;i++) { 7 if(ary[i]==find) { 8 count=i; 9 } 10 } 11 if(count!=-1) { 12 System.out.println("下标在"+count+"的位置"); 13 } 14 else System.out.println("对不起,没有找到"); 15 } 16 }
输出结果:下标在3的位置
(2)二分查找
1 public class BinarySearchFind { 2 public static void main(String[] args) { 3 int[] ary= {2,3,4,5,9,7,8}; 4 int value=5; 5 int count=-1; 6 int low=0; 7 int high=ary.length-1; 8 while(low<=high) { 9 int mid=(low+high)/2; 10 if(ary[mid]==value) { 11 count=mid; 12 break; 13 } 14 else if(ary[mid]>value) { 15 high=mid-1; 16 } 17 else { 18 low=mid+1; 19 } 20 } 21 if(count!=-1) { 22 System.out.println("下标在"+count+"的位置"); 23 } 24 else System.out.println("对不起,没有找到"); 25 } 26 }
输入结果:下标在3的位置
2、JAVA工具类中算法的实现
在JAVA的 java.util 包下有一个类:Arrays,该类提供了诸多方法,如打印数组,排序和二分查找等等。使用步骤如下:
导入java.util下的包中的类:import java.util.Arrays
调用相应的API:Arrays.方法名()
(1)使用工具类打印数组
1 import java.util.Arrays; 2 public class ArraysPrintDemo { 3 public static void main(String[] args) { 4 int[] ary= {2,3,4,5,9,7,8}; 5 System.out.println(Arrays.toString(ary)); 6 } 7 }
输出结果:[2, 3, 4, 5, 9, 7, 8]
(2)使用工具类排序
import java.util.Arrays; public class ArraysSortDemo { public static void main(String[] args) { int[] ary= {2,3,4,5,9,7,8}; Arrays.sort(ary); System.out.println(Arrays.toString(ary)); } }
输出结果:[2, 3, 4, 5, 7, 8, 9]
(3)使用工具类进行二分查找
import java.util.Arrays; public class ArraysBinaryDemo { public static void main(String[] args) { int[] ary= {2,3,4,5,9,7,8}; Arrays.sort(ary); int index=Arrays.binarySearch(ary,3); System.out.println("下标在"+index+"的位置上"); } }
输出结果:下标在1的位置上
(4)Random可以生成随机类
1 import java.util.Random; 2 public class ArraysPrintDemo { 3 public static void main(String[] args) { 4 Random ran=new Random(); 5 int a=ran.nextInt(10000); 6 System.out.println("a="+a); 7 } 8 }
输出结果:a=6842
二、遇到的问题
二分查找的原理没有弄懂
三、明日计划
继续学习第四章的内容,阅读大道至简