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);
        
    }

}

测试截图:

 

posted on 2020-07-11 23:32  桑榆非晚柠月如风  阅读(129)  评论(0编辑  收藏  举报