zoukankan      html  css  js  c++  java
  • 常见排序算法


    一、冒泡排序

    百度百科

    public static void bubbleSort(int[] ints) {
        for(int i = 0; i < ints.length - 1; i++) {
            for(int j = 0; j < ints.length - 1 - i; j++) {
                if (ints[j] > ints[j + 1]) {
                    int temp = ints[j];
                    ints[j] = ints[j + 1];
                    ints[j + 1] = temp;
                }
            }
        }
    }
    

    二、插入排序

    百度百科

    public static void insertionSort(int[] ints) {
        for (int i = 1; i < ints.length; i++) {
            int temp = ints[i];
            int j = i - 1;
            while (j >= 0 && ints[j] > temp) {
                ints[j + 1] = ints[j];
                j--;
            }
            ints[j + 1] = temp;
        }
    }
    

    三、选择排序

    百度百科

    public static void selectionSort(int[] ints) {
        for (int i = 0; i < ints.length - 1; i++) {
            int minIndex = i;
            // 每一个元素都和剩下的未排序的元素比较
            for (int j = i + 1; j < ints.length; j++) {
                if (ints[minIndex] > ints[j]) {
                    minIndex = j;
                }
            }
            // 经过一轮循环,k为本轮最小值的下标,如果最小值下标不是自己,就把最小值跟自己互换位置
            if (minIndex != i) {
                int temp = ints[i];
                ints[i] = ints[minIndex];
                ints[minIndex] = temp;
            }
        }
    }
    

    四、快速排序

    百度百科

    public static void quickSort(int[] ints, int start, int end) {
        int pivot = ints[start], i = start, j = end;
        while (i < j) {
            // 从右向左找小于pivot的数来填ints[i]
            while (i < j && ints[j] >= pivot) {
                j--;
            }
            if (i < j) {
                ints[i] = ints[j];
                i++;
            }
            // 从左向右找大于或等于pivot的数来填ints[j]
            while (i < j && ints[i] < pivot) {
                i++;
            }
            if (i < j) {
                ints[j] = ints[i];
            }
            ints[i] = pivot;
            // 左边区间快速排序
            quickSort(ints, start, i - 1);
            // 右边区间快速排序
            quickSort(ints, i + 1, end);
        }
    }
    


    尊重写作权利,转载请注明出处 ^_^
  • 相关阅读:
    PAT 00-自测1. 打印沙漏(20)
    js Ajax
    c语言算法实现
    解决python for vs在vs中无法使用中文
    python排序算法实现:
    2014-4-27 心情
    Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)
    Poj 1061 青蛙的约会(扩展欧几里得)
    hrbust 1328 相等的最小公倍数(数论)
    hdu 1286 找新朋友 (欧拉函数)
  • 原文地址:https://www.cnblogs.com/convict/p/14881597.html
Copyright © 2011-2022 走看看