美文网首页
Golang快速排序(分治-填充)

Golang快速排序(分治-填充)

作者: ES_KYW | 来源:发表于2020-09-08 11:38 被阅读0次

go快速排序算法,Go没有while循环,使用for

//快速排序,分治-填充
 func div_sort(arr []int,l int,r int) {

    if l >= r {
        return
    }

    i := l
    j := r

    x := arr[l]

    for i < j {

        for i<j {
            if arr[j] >= x {
                j--
            }
            arr[i] = arr[j]
            // 查找到第一个满足条件跳出
            break
        }
        for i<j {
            if arr[i] <= x {
                i++
            }
            arr[j] = arr[i]
            // 查找到第一个满足条件 跳出
            break
        }
    }
    arr[i] = x
    div_sort(arr,l,i-1)
    div_sort(arr,i+1,r)

}

测试

arrs := []int{3,5,2,5,7,1,3,5,25,2,15} // a写法
//  如果是[11]int{3,5,2,5,7,1,3,5,25,2,15}//b写法 则会变成值传递,打印的还是原来的数组,不会排序。原因分析:a写法是初始化silce,传值是指针应用。b写法是初始化数组,值传递。
div_sort(arrs,0,len(arrs)-1)
fmt.Printf("%v",arrs)

[1 2 2 3 3 5 5 5 7 15 25]

相关文章

  • Golang快速排序(分治-填充)

    go快速排序算法,Go没有while循环,使用for 测试

  • java实现快速排序&最长子字符串

    快速排序 简述 快速排序是一种排序执行效率很高的排序算法,它利用分治法来对待排序序列进行分治排序,它的思想主要是通...

  • 快速排序的Python实现

    目录 快速排序的介绍 快速排序的Python实现 快速排序的介绍 快速排序(quick sort)的采用了分治的策...

  • 排序算法之--快速排序

    今天来整理一下快速排序。 快速排序采用分治策略对数据进行排序,什么是分治策略呢?简单地说就是“分而治之,各个击破”...

  • 快速排序及优化

    原文地址 快速排序 原理 快速排序是C.R.A.Hoare提出的一种交换排序。它采用分治的策略,所以也称其为分治排...

  • 多语言实现快速排序算法

    快速排序: 快速排序采用“分而治之、各个击破”的观念,此为原地(In-place)分割版本。 快速排序使用分治法(...

  • 算法笔记01-排序#2

    快速排序敢叫快速排序,那它一定得快。 快速排序 概述 快速排序也是分治排序的典型,它快,而且是原地排序。不过,要防...

  • 06-快速排序(完成)

    快速排序(高效排序算法) —— 不稳点!!! 动态图: 一、概念: 原理:  快速排序使用分治法(Divide a...

  • 排序算法

    快速排序 对于快速排序需要了解快速排序的平均复杂度?最坏复杂度?是否是稳定排序? 快速排序也是一种分治算法 归并排...

  • python实现归并算法

    归并排序是采用分治法的一个非常典型的应用,另一个可以采用分治法的是快速排序,归并算法比快速排序速度稍低。归并排序的...

网友评论

      本文标题:Golang快速排序(分治-填充)

      本文链接:https://www.haomeiwen.com/subject/jaudektx.html