快速排序算法

来源:互联网 发布:mysql synonym 编辑:程序博客网 时间:2024/06/05 21:53

排序的基本思想:首先选一个轴值,将待排序记录划分成独立的两部分,左侧记录的关键码均小于或等于轴值,右侧记录的关键码均大于或等于轴值,然后分别对两部分重复上述过程,指导整个序列有序。

  1. 所有的记录都会被比较一次
  2. 每次指针移动的方向都是指向轴值
package mainimport(    "fmt")var partition = []int{23, 13, 49, 6, 31, 19, 28}func sort(part []int, first int, end int) []int{    i := first    j := end    for i< j {        for i < j && part[i] < part[j] {            j--        }        if i < j {            part[i], part[j] = part[j], part[i]            i++        }        for i < j && part[i] < part[j] {            i++        }        if i < j {            part[i], part[j] = part[j], part[i]            j--        }    }    return part}func main(){    result := sort(partition, 0, 6)    fmt.Println(result)}
原创粉丝点击