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();

    }

    }
  • 相关阅读:
    laravel 安装及入门
    mysql事务处理的意义
    PHP项目:如何用PHP高并发检索数据库?
    inner join、left join、right join等的区别
    百度地图引入网页中
    google地图引入网页
    thinkphp的mvc理解
    SpringBoot+Shiro入门小栗子
    Springboot+WebSocket+Kafka(写着玩的)
    Windows下安装单机Kafka
  • 原文地址:https://www.cnblogs.com/songfahzun/p/7479377.html
Copyright © 2011-2022 走看看