首页 > 编程语言 >Java学习笔记day4--数组复习

Java学习笔记day4--数组复习

时间:2022-11-06 09:13:26浏览次数:41  
标签:Java -- day4 System int arr1 println array out

package day4_array;

import java.util.Arrays;
import java.util.Scanner;
public class ArrayExam {
    public static void main(String[] args) {
        int[]array=new int[]{34,5,22,-98,6,-76,0,-3};
        //3.复制上述数组,得到一个新的数组
                int[] arr=new int[array.length];
                for(int i=0;i<array.length;i++) {
                    arr[i]=array[i];
                }System.out.println(Arrays.toString(arr));
        /*
        使用冒泡排序,实现如下数组从小到大排序
         int[]arr=new int[]{34,5,22,-98,6,-76,0,-3}
         */
        for(int i=0;i<array.length-1;i++) {
            for(int j=0;j<array.length-1-i;j++) {
                if(array[j]>array[j+1]) {
                    int temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }System.out.println(Arrays.toString(array));
        //快速排序法
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        
        //2.反转上述数组
        for(int i=0;i<array.length/2;i++) {
            int temp=array[i];
            array[i]=array[array.length-1-i];
            array[array.length-1-i]=temp;
        }System.out.println(Arrays.toString(array));
        
        //4.使用线性、二分查找,从上述数组中查找22是否存在,存在,则返回索引,否则输出提示信息
        //线性
        int index=22;
        boolean isExit=false;
        for(int i=0;i<arr.length;i++) {
            if(arr[i]==index) {
                System.out.println("存在,位置是:"+i);
                isExit=true;
                break;
            }
        }if(!isExit) {
            System.out.println("没找到该数字");
        }
        //二分法
        int head=0;
        int end=arr.length;
        while(head<=end) {
            int middle=(head+end)/2;
            if(index>arr[middle]) {
                head=middle+1;
            }else if(index<arr[middle]) {
                end=middle-1;
            }else {
                System.out.println("找到了,位置是:"+middle);
                break;
            }
        }if(head>end) {
            System.out.println("没找到该数字");
        }
        //二分法查找Arrays库
        int num=Arrays.binarySearch(arr, index);
        if(num>=0) {
            System.out.println("找到了,位置是:"+num);
        }else {
            System.out.println("没找到该数字");
        }
        
        
        /*
         *第2题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!太难了做不出来了!!!!!!!!!!!!!!!!!!!!!!!!
         如果控制台输入一个3,打印如下矩阵:
         1 2 3
         8 9 4
         7 6 5
         如果输入的是5,打印如下矩阵:
         1  2  3  4  5
         16 17 18 19 6
         15 24 25 20 7
         14    23 22 21 8
         13 12 11 10 9
         
         */
        Scanner s=new Scanner(System.in);
        System.out.println("请输入您要大小");
        int i=s.nextInt();
        int [][] arr1=new int[i][i];
        int x=0;
        int y=0;
        int number=1;
        while (arr1[x][y]!=(i*i)){
            arr1[x][y]=number;
            //定位
            if(y!=i-1&&arr1[x][y+1]==0){
                if(x>0&&arr1[x-1][y]==0){
                    x--;
                }else{y++;}
            }
            else if(x!=i-1&&arr1[x+1][y]==0){
                x++;
            }
            else if(y>0&&arr1[x][y-1]==0){
                y--;
            }
            else if(x>0&&arr1[x-1][y]==0){
                x--;
            }
            number++;
        }
        //打印
        for(int i1=0;i1<arr1.length;i1++){
            for(int i2=0;i2<arr1.length;i2++){
                System.out.print(arr1[i1][i2]+"\t");
            }
            System.out.println();
        }//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
    }
}

 

标签:Java,--,day4,System,int,arr1,println,array,out
From: https://www.cnblogs.com/NGZS/p/16861896.html

相关文章

  • Java 超新星开源项目 Solon v1.10.10 发布
    一个更现代感的Java应用开发框架:更快、更小、更自由。主框架仅0.1MB。Helloworld:@ControllerpublicclassApp{publicstaticvoidmain(String[]args){......
  • C语言初级阶段4——数组2————二维数组
    C语言初级阶段4——数组2————二维数组二维数组的定义:类型说明符数组名[数组大小][数组大小]第一个大小是行的大小,第二个大小是列的大小。二维数组的初始化:{}#in......
  • C语言初级阶段4——数组3——字符数组
    C语言初级阶段4——数组3——字符数组字符数组的定义:储存字符类型数据的集合1.注意:如果用字符串给字符数组初始化,那么不需要{},但是要有""。2.%s:用来输出字符串的格式......
  • C语言初级阶段5——函数1
    C语言初级阶段5——函数1函数的基本概念1.函数:理解为封装功能的容器。主函数是函数的入口2.函数定义的基本格式:返回值类型:常用的基本数据类型,执行完以后,函数会得到一......
  • C语言初级阶段5——函数2
    C语言初级阶段5——函数2址传递1.地址:在定义变量,数组,函数等等,系统会自动给分配他们的内存区域(地址),把这个数据放到这个地址上面。2.&:&a得到a的地址编号3.*:定义指针变......
  • 2018之后的Unity3d制作AR教程
    自2017.4以后的unity版本,AR的SDK已经被集成,那么如何用2018unity3d制作AR呢?1.首先打开Unity3d2018,然后打开File->BuildingSetting,接着打开PlayerSetting,找到XRSetting......
  • C语言初级阶段6——自定义数据类型
    C语言初级阶段6——自定义数据类型阐述1.构造数据类型:用户自己建立的数据类型(自定义数据类型)。2.C语言中的自定义数据类型:数组类型、结构体类型、共用体类型和枚举类型......
  • ASP.NET Core教程-Configuration(配置)-返回XML
    更新记录转载请注明出处:2022年11月6日发布。2022年11月5日从笔记迁移到博客。ASP.NETCoreWebAPI配置支持XML说明默认情况下,ASP.NETCoreWebAPIController......
  • 信创服务器操作系统总结
    第一部分摘要自从提出没有网络安全就没有国家安全之后信创操作系统的发展进入了快车道.流行的操作系统主要分为如下几个大方面:1.宣称二进制兼容CentOS的部分系列:......
  • 青少年CTF Crypto-Easy UUID WP
    看到两个中括号,想到使用栅栏解密,栅栏32可以得到然后使用rot47暴力,可以看到rot32为flag,rot31为UUID的形式,再将rot31的数字部分和rot32的字母部分进行交叉替换Amount=3......