zoukankan      html  css  js  c++  java
  • [Go] Golang练习项目-GO语言实现快速排序-第一个数作为基准更容易理解

    快速排序思路:

    1. 第一个数作为基准数,找到所有比基准数小的放在左边 ,找所有比基准数大的放右边

    2.两个指针 ,一个从前往后 i,一个从后往前 j,i找到比基准数大的停下 , j找到比基准数小的停下 , 两个数调换位置,直到两数相遇

    3.调换基准数与i/j位置

    4.递归  , 从0到基准数位置 ,从基准数位置到最后

    //快速排序2
    func QuickSort2(arr *[]int,left int,right int){
        if left>= right{
            return
        }
        privot:=(*arr)[left]
        i:=left
        j:=right
        for i<j{
            for i<j && (*arr)[j]>privot{
                j--
            }
            for i<j && (*arr)[i]<=privot{
                i++
            }
            temp:=(*arr)[i]
            (*arr)[i]=(*arr)[j]
            (*arr)[j]=temp
        }
        (*arr)[left]=(*arr)[i]
        (*arr)[i]=privot
    
        QuickSort(arr,left,i-1)
        QuickSort(arr,i+1,right)
    }

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com

    赞赏作者

    微信交流

  • 相关阅读:
    AtCoder agc023_f
    CodeForces 1328
    洛谷 P4437
    Spark读取txt文件跳过第一行
    斯特林数学习笔记。
    hackrank subsets
    题解 CF1004F 【Sonya and Bitwise OR】
    [NOI2020]美食家
    Educational Codeforces Round 94 题解
    Delphi 与 C/C++ 数据类型对照表
  • 原文地址:https://www.cnblogs.com/taoshihan/p/13538067.html
Copyright © 2011-2022 走看看