版权声明:中华人民共和国持有版权 https://blog.csdn.net/Fly_Fly_Zhang/article/details/84317653
import java.util.Arrays;
/**
* @Created with IntelliJ IDEA
* @Description: 四种排序
* @Package: PACKAGE_NAME
* @User: FLy
* @Date: 2018/11/21
* @Time: 10:42
*/
public class Sort {
public static int[] SelectionSort(int []array1){ //选择排序
for(int i=0;i<array1.length-1;i++){
int min=array1[i];
for(int j=i+1;j<array1.length;j++){
if(array1[j]<min){
int tmp=min;
min=array1[j];
array1[j]=tmp;
}
}
array1[i]=min;
}
return array1;
}
public static byte[] InsertSort(byte[] array2){//直接插入排序
for (int i = 1; i <array2.length ; i++) {
byte tmp=array2[i];
int j;
for ( j = i; j >=1 ; j--) {
if(array2[j-1]>tmp){
array2[j]=array2[j-1];
}else {
break;
}
}
array2[j]=tmp; //前面的序列已经排列ok,将外面的tmp搁到空位上
}
return array2;
}
public static void BubbleSort(long [] array3){ //冒泡排序
for(int i=0;i<array3.length-1;i++){ //后面地这个减一加不加不影响结果,但是加上少一次运算。
for(int j=0;j<array3.length-1-i;j++){
if(array3[j]>array3[j+1]){
long lg=array3[j];
array3[j]=array3[j+1];
array3[j+1]=lg;
}
}
}
System.out.println(Arrays.toString(array3));
}
public static void shellSort(short [] array4,int gap){ //希尔排序
for (int i = gap; i <array4.length ; i++) {
short tmp=array4[i];
int j;
for ( j = i-gap; j >=0; j-=gap) {
if(array4[j]>tmp){
array4[j+gap]=array4[j];
}else {
break;
}
}
array4[j+gap]=tmp;
}
}
public static void shell(short [] array4){
int [] array=new int []{7,3,1};
for (int i = 0; i <array.length ; i++) {
int gap=array[i];
shellSort(array4,gap);
}
System.out.println(Arrays.toString(array4));
}
public static void main(String [] args){
int [] array1=new int[]{5,1,8,0,-1}; //选择排序
System.out.println(Arrays.toString(SelectionSort(array1)));
byte[] array2=new byte[]{5,1,8,0,-1};//直接插入排序
System.out.println(Arrays.toString(InsertSort(array2)));
long [] array3=new long[]{5,1,8,0,-1}; //冒泡排序
BubbleSort(array3);
short[] array4=new short[21];
for(int i=0;i<array4.length;i++){
array4[i]=(short)(Math.random()*100);
}
shell(array4);
}
}