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

    package com.fz.song;

    /**
    * Created by sfz on 2017/9/5.
    */
    public class quick {


    public static void main(String[] args) {

    //定义一个数组,不要有重复数据
    int[] arr = {11, 20, 5, 16, 15, 35, 30, 45};
    //开始下标
    int start = 0;
    //结束下标
    int end = arr.length - 1;
    //开始排序
    quicksort(arr, start, end);
    //打印结果
    soutarr(arr);
    }


    /**
    * 快速排序
    *
    * @param arrs:数组
    * @param start:开始下标
    * @param end:结束下标
    */
    public static void quicksort(int[] arrs, int start, int end) {
    //把开始下标的值给left指针
    int left = start;
    //把结束下标的值给rigth指针
    int right = end;
    //定义一个缓存数据的变量
    int temp = 0;
    //限制lief,不能大于right
    if (left <= right) {
    //获取最左边第一个数据给遍历存起来
    temp = arrs[left];
    //开始循环
    while (left != right) {
    //开始从右边向左边找,直到找到一个小于temp的值,就记录下标
    while (right > left && arrs[right] > temp) {
    right--;
    }
    //把riht的值给left
    arrs[left] = arrs[right];

    //从左边向右边查找,直到找到一个大于temp的值,记录下标,把这个值赋给下标为rigth,
    while (left < right && arrs[left] < temp) {
    left++;
    }
    arrs[right] = arrs[left];
    }
    //把缓存的数据布给那个空的数据
    arrs[right] = temp;
    //从此,左边的数据比temp小,有变的比他大
    //递归调用一下.
    quicksort(arrs, start, left - 1);
    quicksort(arrs, right + 1, end);
    }

    }


    public static void soutarr(int[] arr) {
    for (int a : arr) {
    System.out.print(a + " ");

    }
    System.out.println();

    }

    }
  • 相关阅读:
    ZOJ3513_Human or Pig
    ZOJ2083_Win the Game
    ZOJ2725_Digital Deletions
    ZOJ2686_Cycle Gameu
    UVALive
    ZOJ2290_Game
    ZOJ3067_Nim
    P3159 [CQOI2012]交换棋子(费用流)
    P3153 [CQOI2009]跳舞(最大流多重匹配)
    P3121 [USACO15FEB]审查(黄金)Censoring (Gold)(ac自动机)
  • 原文地址:https://www.cnblogs.com/songfahzun/p/7479377.html
Copyright © 2011-2022 走看看