zoukankan      html  css  js  c++  java
  • 常见排序算法(java实现)

    常见排序算法介绍

    冒泡排序

    • 代码:
    public class BubbleSort {
    
        public static void sort(int[] array) {
            int tValue;
            for (int i = 0; i < array.length; i++) {
                for (int j = i; j < array.length; j++) {
                    if (array[i] > array[j]) {
                        tValue = array[i];
                        array[i] = array[j];
                        array[j] = tValue;
                    }
                }
            }
        }
    
        public static void main(String[] args) {
            int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
            sort(a);
            for (int v : a) {
                System.out.print(v + " ");
            }
        }
    }

    输入结果:
    1 2 4 5 6 7 9 10

    插入排序:

    • 效果图:

    • 代码:

    public class InsertSort {
        public static void sort(int[] array) {
            int tValue;
            int j;
            for (int i = 0; i < array.length; i++) {
                j = i;
                tValue = array[i];
                while (j > 0 && tValue < array[j - 1]) {
                    array[j] = array[j - 1];
                    j--;
                }
                array[j] = tValue;
            }
        }
    
        public static void main(String[] args) {
            int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
            sort(a);
            for (int v : a) {
                System.out.print(v + " ");
            }
        }
    } 

    输入结果:
    1 2 4 5 6 7 9 10

    选择排序:

    • 代码:
    public class SelectSort {
        public static void sort(int[] array) {
            int index, tValue;
            for (int i = 0; i < array.length; i++) {
                index = i;
                for (int j = i + 1; j < array.length; j++) {
                    if (array[j] < array[index]) {
                        index = j;
                    }
                }
                if (index != i) {
                    tValue = array[i];
                    array[i] = array[index];
                    array[index] = tValue;
                }
            }
        }
    
        public static void main(String[] args) {
            int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
            sort(a);
            for (int v : a) {
                System.out.print(v + " ");
            }
        }
    }

    输入结果:
    1 2 4 5 6 7 9 10

    高速排序:

    • 代码:
    public class QuickSort {
        public static void quickSort(int[] array, int left, int right) {
            int i, j, bValue, tValue;
            if (left > right) {
                return;
            }
            i = left;
            j = right;
            bValue = array[left];
            while (i != j) {
                while (array[j] >= bValue && i < j) {
                    j--;
                }
                while (array[i] <= bValue && i < j) {
                    i++;
                }
                if (i < j) {
                    tValue = array[i];
                    array[i] = array[j];
                    array[j] = tValue;
                }
            }
    
            array[left] = array[i];
            array[i] = bValue;
    
            quickSort(array, left, i - 1);
            quickSort(array, i + 1, right);
        }
    
        public static void main(String[] args) {
            int a[] = { 6, 2, 4, 5, 1, 9, 10, 7 };
            quickSort(a, 0, a.length - 1);
            for (int v : a) {
                System.out.print(v + " ");
            }
        }
    }
    

    输入结果:
    1 2 4 5 6 7 9 10

    參考资料:

    http://blog.jobbole.com/11745/

  • 相关阅读:
    20181020遭遇战
    二分图最大分配
    2019.11.11 洛谷月赛t3
    2019.10.29 CSP%您赛第四场t2
    2019.10.28 CSP%您赛第四场t3
    2019.10.26 CSP%您赛第三场
    2019.10.24 CSP%你赛第二场d1t3
    0080-简单的排序
    0079-简单的循环
    0078-求最大因子
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7277035.html
Copyright © 2011-2022 走看看