对数器

2019-04-08  本文已影响0人  鸡杂面
学习视频截图

数组排序对数器

1.java有自己的数组复制方法和比较方法,要先导入java.util.Arrays包;

import java.util.Arrays;
//比较两个数组是否相等,返回布尔类型
Arrays.equals(arr,arr1);
//复制数组
arr = arr0.clone();

2.生成随机数组
Math.random()随机生成[0,1)之间的数(包括小数);

public static int[] generateRandomArray(int size,int value) {
            //生成[0,size]长度的数组;
            int[] arr = new int[(int) ((size + 1) * Math.random())];
            for(int i = 0; i < arr.length; i++) {
            //生成[-value,value]之间的值
                arr[i] = (int)(value * Math.random() - value * Math.random());
            }
            return arr;
        }

3.编写插入排序,用冒泡排序来检验

import java.util.Arrays;

public class Charu {
        public static void main(String[] args) {
            int testTime = 50000;
            int Maxsize =5;
            int Maxvalue = 100;
            boolean succeed = true;
            int[] arr=null,arr1=null;
            for(int j = 0; j < testTime; j++) {
                 int[] arr0 =generateRandomArray(Maxsize,Maxvalue);
                 arr = arr0.clone();
                 arr1 = arr.clone();
                
                charu(arr);
                RightSort(arr1);
                if(!Arrays.equals(arr,arr1)) {
                    succeed = false;
                    System.out.println(Arrays.toString(arr0));
                    System.out.println(Arrays.toString(arr));
                    System.out.println(Arrays.toString(arr1));
                }
            }
            System.out.println(Arrays.toString(arr));
            System.out.println(Arrays.toString(arr1));
            if(succeed == true) {
                System.out.println("Nice!");
            }else {
                System.out.println("No!");
            }
        }
    
        public static void charu(int[] arr) {
            if(arr == null || arr.length<2) {
                return;
            }
            else {
                for(int i = 1 ; i < arr.length ; i++) {
                    for(int j = i - 1 ; j >= 0 && arr[j] > arr[j + 1] ; j--) {
                        int temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
        } 
        
        //生成随机数组
        public static int[] generateRandomArray(int size,int value) {
            int[] arr = new int[(int) ((size + 1) * Math.random())];
            for(int i = 0; i < arr.length; i++) {
                arr[i] = (int)(value * Math.random() - value * Math.random());
            }
            return arr;
        }
        
        //冒泡排序,用来验证上面的排序方法
        public static void RightSort(int[] arr) {
            if(arr == null || arr.length<2) {
                return;
            }
            for(int i = arr.length; i > 0; i--) {
                for(int j = 1; j < i ; j++) {
                    if(arr[j] < arr[j - 1]) {
                        int temp = arr[j];
                        arr[j] = arr[j - 1];
                        arr[j - 1] = temp;  
                    }
                }
            }
        }   
}
上一篇 下一篇

猜你喜欢

热点阅读