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/

  • 相关阅读:
    bzoj1415 NOI2005聪聪和可可
    Tyvj1952 Easy
    poj2096 Collecting Bugs
    COGS 1489玩纸牌
    COGS1487 麻球繁衍
    cf 261B.Maxim and Restaurant
    cf 223B.Two Strings
    cf 609E.Minimum spanning tree for each edge
    cf 187B.AlgoRace
    cf 760B.Frodo and pillows
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7277035.html
Copyright © 2011-2022 走看看