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();
        }//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
    }
}

 

原文地址:http://www.cnblogs.com/NGZS/p/16861896.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性