首页 > 代码库 > 选择排序 冒泡排序 简单插入排序

选择排序 冒泡排序 简单插入排序

排序:

public class SortDemo {    public static void main(String[] args) {        int[] arr = { 5, 8, 9, 12, 55, 565, 421, 12, 2512, -5, -56 };        // int[] arr = { 6, 9, 4589, 442, 458, 5232, -788, 7, 545, -44, 55, -11        // };        // selectionSort(arr);        // bubbleSort(arr);        directInsertSort(arr);        printSort(arr);    }    // 选择排序 每趟都确定arr[i]的数 每次都是arr[i]的数和后面的所有arr[j]的数比较 满足就交换    // 第一趟 int[] arr = { -56, 8, 9, 12, 55, 565, 421, 12, 2512, -5, 5 };    private static void selectionSort(int[] arr) {        // 第一个开始比到最后第二个就可以了        for (int i = 0; i < arr.length - 1; i++) {            // 第二个开始到最后一个            for (int j = i + 1; j < arr.length; j++) {                // 某个和后面所有的比较                if (arr[i] > arr[j]) {                    int temp = arr[j];                    arr[j] = arr[i];                    arr[i] = temp;                }            }        }    }    // 冒泡排序 每趟两两交替比较 一趟下来最大/最小的已经在最端了    // 第一趟 int[] arr = {5,8,9,12,55,421,12,565,-5,-56,2512}    private static void bubbleSort(int[] arr) {        // 我的思维逻辑习惯这个        for (int i = 0; i < arr.length - 1; i++) {            for (int j = 0; j < arr.length - i - 1; j++) {                if (arr[j] > arr[j + 1]) {                    int temp = arr[j + 1];                    arr[j + 1] = arr[j];                    arr[j] = temp;                }            }        }        // for (int i = 1; i < arr.length; i++) {        // for (int j = 0; j < arr.length - i; j++) {        // if (arr[j] > arr[j + 1]) {        // int temp = arr[j + 1];        // arr[j + 1] = arr[j];        // arr[j] = temp;        // }        // }        // }        // 数据结构正统        // for (int i = 0; i < arr.length - 1; i++) {        // for (int j = arr.length - 1; j > i; j--) {        // if (arr[j] < arr[j - 1]) {        // int temp = arr[j - 1];        // arr[j - 1] = arr[j];        // arr[j] = temp;        // }        // }        // }    }    // 直接插入排序 相当于打牌    // 变化的那次 int[] arr = { 5, 8, 9, 12, 55, 565, 565, 12, 2512, -5, -56 };  temp=421 i=6    // 变化的那次 int[] arr = { 5, 8, 9, 12, 55, 421, 565, 12, 2512, -5, -56 };    private static void directInsertSort(int[] arr) {        // 第二个元素开始遍历        for (int i = 1; i < arr.length; i++) {            int temp = arr[i];            int j;            for (j = i; j > 0; j--) {                if (arr[j - 1] > temp) {                    // 数组下标后移                    arr[j] = arr[j - 1];                } else {                    break;                }            }            // break代表不需要比较了 直接赋值            arr[j] = temp;        }    }    private static void printSort(int[] arr) {        for (int i : arr) {            System.out.print(i + " ");        }    }}
View Code

 

选择排序 冒泡排序 简单插入排序