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

    package ds.sort;
    
    import java.util.Arrays;
    import java.util.Scanner;
    /**
     * 快速排序采用的是分治法思想,选择第一个数为key
     * 第一轮将比key小的放在左边,大的都放在右边
     * 然后分别再对左右两边的子数组进行类似操作
     * @author zz
     *
     */
    public class QuickSort {
        public static void quicksort(int[] a, int left, int right) {
            if (left < right) {
                int key = a[left];
                int low = left;
                int high = right;
            //    boolean flag = false;
                while (low < high) {
                    while (low < high && a[high] >= key) {
                        high--;
                    }
            //        if(low != high) flag = true;
                    a[low] = a[high];
                    while (low < high && a[low] <= key) {
                        low++;
                    }
                    a[high] = a[low];
                }
                a[low] = key;
                quicksort(a, left, low - 1);
                quicksort(a, low + 1, right);
            }
            System.out.println(Arrays.toString(a));
        }
    
        public static void quickSort(int[] a, int left, int right) {
            if(left < right) {
                int key = a[left];
                int low = left;
                int high = right;
                while(low < high) {
                    while(low < high && a[high] >=key) high--;
                    a[low] = a[high];
                    while(low < high && a[low] <= key) low++;
                    a[high] = a[low];
                }
                a[low] = key;
                quickSort(a, left, low-1);
                quickSort(a, low+1, right);
            }
            System.out.println(Arrays.toString(a));
        }
        
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.println("请输入数组元素的个数n: ");
            int n = input.nextInt();
            int[] a = new int[n];
            for (int i = 0; i < n; i++) {
                a[i] = input.nextInt();
            }
            quickSort(a, 0, n-1);
        }
    }
  • 相关阅读:
    CSS笔记
    EasyUI笔记
    EasyUI treegrid 获取编辑状态中某字段的值 [getEditor方法获取不到editor]
    2019.10.12解题报告
    %lld 和 %I64d
    关于kmp算法
    洛谷p2370yyy2015c01的U盘题解
    About me & 友链
    关于Tarjan
    洛谷p3398仓鼠找suger题解
  • 原文地址:https://www.cnblogs.com/zzsaf/p/6895839.html
Copyright © 2011-2022 走看看