首页 > 编程语言 > 详细

常见排序算法(java实现)

时间:2017-08-02 22:52:53      阅读:161      评论:0      收藏:0      [点我收藏+]

常见排序算法介绍

冒泡排序

  • 代码:
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/

常见排序算法(java实现)

原文:http://www.cnblogs.com/zhchoutai/p/7277035.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!