package com.leete.subject;
import java.util.Arrays;public class RandomTest {
/**
* 排序方法:
* 插入排序(直接插入排序,希尔排序)
* 交换排序(冒泡排序,快速排序)
* 选择排序(直接选择排序、堆排序)
* 归并排序
* 分配排序(箱排序,基数排序)
*/
public static void main(String[] args) {
//创建数组
int[] num = new int[10];
for(int i=0;i<num.length;i++){
num[i] = (int) (Math.random() * 100 + 1);
}
//复制得到新数组
int[] numCopy = Arrays.copyOf(num, 10);
int[] numCopy2 = Arrays.copyOf(num, 10);
System.out.println("-----------选择排序-------------------------");
System.out.println(Arrays.toString(num));
/**
* 选择排序 (不稳定----相等的数也可能调换顺序)
* 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完
*
*/
for(int i=0;i<num.length-1;i++){
int a = 0;
for(int j=i+1;j<num.length;j++){
if(num[j] < num[i]){
a = num[i];
num[i] = num[j];
num[j] = a;
System.out.println(Arrays.toString(num));
}
}
}
System.out.println("-----------冒泡排序-------------------------");
System.out.println(Arrays.toString(numCopy));
/**
* 冒泡排序 (稳定)
* 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
*/
for(int i=0;i<numCopy.length-1;i++){
for(int j=0;j<numCopy.length-i-1;j++){
if(numCopy[j] > numCopy[j+1]){
int a = numCopy[j];
numCopy[j] = numCopy[j+1];
numCopy[j+1] = a;
System.out.println(Arrays.toString(numCopy));
}
}
}
}
}