Java暑期学习第六天日报
一、今天学习《Java程序设计完全手册》第三章的3.3 和 3.4 。其中3.3 的主要是查找算法的学习,查找算法主要为顺序查找算法和二分查找算法,两者都比较简单。.关于3.4的内容,主要学习了Java工具类中一些算法实现的方法,其中包括数组的打印、排序、二分查找,这使得代码变得简单起来。这些全都得益于一个java.util包下的工具类类 Arrays。另外还学习了Random工具类下的产生随机数的算法。
二、明天计划练习第三章的综合实例和课后习题。
三、下面是今天的练习题目:
关于顺序查找算法的例题练习如下:
1.顺序查找算法:
import java.util.*; public class identifier { public static void main(String[] args) { int[] num= {3,7,5,-3,8,11}; int i,find,count=-1; Scanner sc=new Scanner(System.in); System.out.println("请输入要查找的数字:"); find=sc.nextInt(); for(i=0;i<num.length;i++) { if(find==num[i]) count=i; } if(count!=-1) System.out.print("该数的位置为:"+i); else System.out.print("该数不存在"); } }
测试截图如下:
2.二分查找:
import java.util.*; public class identifier { public static void main(String[] args) { int[] num= {3,7,5,-3,8,11}; int mid,low=0,high=num.length-1,count=-1,find; Scanner sc=new Scanner(System.in); System.out.println("请输入要查找的数字:"); find=sc.nextInt(); while(low<=high) { mid=(high+low)/2; if(find==num[mid]) { count=mid; break; } if(find>num[mid]) { low=mid+1; } else high=mid-1; } count=count+1; if(count!=-1) System.out.print("该数的位置为:"+count); else System.out.print("没有找到"); } }
测试截图:
3。具体使用如下:
使用工具类打印数组
这个功能的实现是比较简单的,需要使用Arrays下的toString方法即可实现。
import java.util.Arrays; public class string extends solution { public static void main(String [] args) { int [] num= {2,34,8,11,6,-9,0,56}; System.out.println("请输出下面的数组:"); System.out.println(Arrays.toString(num)); } }
测试结果:
4.使用工具类排序
Arrays工具类下的sort方法具有排序功能:
import java.util.Arrays; public class string extends solution { public static void main(String [] args) { int [] num= {2,34,8,11,6,-9,0,56}; Arrays.sort(num); System.out.println("请输出排好序的数组:"); System.out.println(Arrays.toString(num)); } }
测试截图:
5.使用工具类Arrays进行二分查找,可利用binarySearch来确定查找的数的位置:
import java.util.Arrays; import java.util.*; public class string extends solution { public static void main(String [] args) { int find,index; int [] num= {2,34,8,11,6,-9,0,56}; Scanner sc=new Scanner(System.in); System.out.println("请输入要查找的数字:"); find=sc.nextInt(); Arrays.sort(num); index=Arrays.binarySearch(num, find); System.out.println("该数的位置为:"+index); } }
测试结果截图:
6.另外java.util下的Random工具类下的方法可生成随机数:
import java.util.Random; import java.util.*; public class string extends solution { public static void main(String [] args) { int find; Scanner sc=new Scanner(System.in); System.out.println("请输入要生成随机数的范围:0——:"); find=sc.nextInt(); Random ran=new Random(); int num=ran.nextInt(find); System.out.println("该随机数为:"+num); } }
测试截图: