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/

  • 相关阅读:
    jQuery 之 serialize() serializeArray()
    浅析JavaScript中Function对象(二) 之 详解call&apply
    详解JavaScript作用域及作用域链
    浅析JavaScript中Function对象(一)之 arguments对象
    浅析jQuery基本结构($实现原理)
    浅析伪数组
    jQuery版本差异简要分析
    白话解释:控制反转与依赖注入
    为什么开发移动端web不使用jQuery
    浅析meta标签用处
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7277035.html
Copyright © 2011-2022 走看看