美文网首页Go Rookie程序员
菜鸟算法-快速排序

菜鸟算法-快速排序

作者: 甚了 | 来源:发表于2016-11-18 17:29 被阅读41次

    菜鸟算法

    快速排序

    func QuickSorter(array *[]int, start int, end int) {
            if start > end {
                    return
            }
    
            pivot, head, tail := start, start, end
    
            for head < tail {
                    // 移动尾指针 寻找小于基准值的数 (这里基准值选取的是头部数,所以先移动尾指针)
                    for (*array)[tail] >= (*array)[pivot] && head < tail {
                            tail--
                    }
                    // 移动头指针 寻找大于基准值的数
                    for (*array)[head] <= (*array)[pivot] && head < tail {
                            head++
                    }
    
                    if head < tail {
                            (*array)[head], (*array)[tail] = (*array)[tail], (*array)[head]
                    } else {
                            // 将基准值归位
                            (*array)[pivot], (*array)[head] = (*array)[head], (*array)[pivot]
                    }
            }
    
            QuickSorter(array, start, head-1)
            QuickSorter(array, head+1, end)
    }
    
    执行结果

    相关文章

      网友评论

        本文标题:菜鸟算法-快速排序

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