zoukankan      html  css  js  c++  java
  • 快速排序

    快速排序的基本思想是:

    通过一趟排序将要排序的数据分割成独立的两部分——其中一部分的所有数据都比另外一部分的所有数据都要小,

    然后再按此方法对这两部分数据分别进行快速排序,

    整个排序过程可以递归进行,以此达到整个数据变成有序序列。

    关键值,交换,界限,递归

    关键字在一趟排序中会反复移动

    Java代码如下:

    package learn.leetcode.algorithm;
    
    import java.util.Arrays;
    import java.util.Random;
    
    public class QuickSort {
        public static void main(String[] args) {
            int[] arr = {6,2,8,7,3,6,9,1,8,9};
            Random ra = new Random();
            for (int i = 0; i < arr.length; ++i) {
                arr[i] = ra.nextInt(20);
            }
            System.out.println(Arrays.toString(arr));
            sort(arr, 0, arr.length - 1);
            System.err.println(Arrays.toString(arr));
        }
    
        public static void sort(int[] arr, int start, int end) {
            int left = start, right = end;
            if (left >= right) {
                return;
            }
    
    //        int flag = arr[start];
    
            while (left < right) {
                while (left < right && arr[left] <= arr[right]) right--;
                if (left < right) {
                    int temp = arr[left];
                    arr[left] = arr[right];
                    arr[right] = temp;
    
                    left++;
                }
                while (left < right && arr[left] <= arr[right]) left++;
                if (left < right) {
                    int temp = arr[left];
                    arr[left] = arr[right];
                    arr[right] = temp;
    
                    right--;
                }
            }
    //        flag = arr[left];
            sort(arr, start, left - 1);
            sort(arr, left + 1, end);
        }
    }
    View Code
  • 相关阅读:
    Knight Moves
    Knight Moves
    Catch him
    Catch him
    Linux查看硬件信息以及驱动设备的命令
    23种设计模式彩图
    Android开发指南-框架主题-安全和许可
    Android启动组件的三种主流及若干非主流方式
    ACE在Linux下编译安装
    void及void指针含义的深刻解析
  • 原文地址:https://www.cnblogs.com/orzt/p/11158524.html
Copyright © 2011-2022 走看看