![](https://img.haomeiwen.com/i14128762/07f40fbdce375461.png)
数组排序对数器
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;
}
}
}
}
}
网友评论