第一天(冒泡,插入,选择)

public class BubbleSort {

/**

    * 排序从第一位开始,取最后一位后前一位然后进行比较,j>i 是因为比较过几次前几位的值就已经排序好了

    * @param arr

    */

    public static void sort(long[] arr) {

int len = arr.length;

//len-1 是因为不会判断最后一位

        for (int i=0;i

for (int j = len-1;j>i;j--){

if(arr[j-1]>arr[j]){

long temp = arr[j-1];

arr[j-1] = arr[j];

arr[j] = temp;

}

}

}

for (long a: arr){

System.out.println(a);

}

}

public static void main(String[] args) {

long[] arr = {23,32,1,3};

sort(arr);

}

}



//插入就是先把第一个数当成是有序的,然后和第二个数比较,然后两个数排序,然后第三个数再

//和排好序的两个数进行比较依次插入

public class InsertSort {

public static void sort(int[] arr) {

int len = arr.length;

int temp =0;

for (int i =1; i < len; i++) {

temp = arr[i];

int j = i;

while (j >0 && arr[j-1] > temp) {

arr[j] = arr[j -1];

j--;

}

arr[j] = temp;

}

for (int a: arr){

System.out.println(a);

}

}

public static void main(String[] args) {

int[] arr = {23,1,32,2};

sort(arr);

}

}


//选择一个最小的然后交换位置

public class SelectSort {

public static void sort(int[] arr) {

int len = arr.length;

int k =0;

for (int i =0; i < len -1; i++) {

k = i;

for (int j = i; j < len; j++) {

if (arr[j] < arr[k]) {

k = j;

}

}

int temp = arr[i];

arr[i] = arr[k];

arr[k] = temp;

}

for (int a: arr){

System.out.println(a);

}

}

public static void main(String[] args) {

int[] arr = {23,1,32,2};

sort(arr);

}

}

你可能感兴趣的:(第一天(冒泡,插入,选择))