分治思想,分而治之,将大问题拆分成小问题来解决
将问题 (p..r)q 拆成 (p..q)(q+1..r)
递归(编程技巧)

归并排序

merge_sort(A, n){
            merge_sort_c(A, 0, n-1)
        }
        //递归调用函数
        merge_sort_c(A, p, r){
            // 递归终止条件
            if p >= r then return
                
            // 取 p 到 r 中点 q
            q = (p + r)/2
            // 分治递归
            merge_sort_c(A, p, q)
            merge_sort_c(A, q+1, r)
            // 将A(p..q) 和 A(p+1..r) 合并为 A(p..r)
            merge(A(p..r), A(p..q), A(q+1..r))
        }

yint
388 声望21 粉丝

转AIing


引用和评论

0 条评论