美文网首页
温习mergesort归并排序

温习mergesort归并排序

作者: robertzhai | 来源:发表于2023-07-05 11:03 被阅读0次
package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 将给定数组排序
 * @param arr int整型一维数组 待排序的数组
 * @return int整型一维数组
 */
func MySort(arr []int) []int {
    // write code here
    mergeSort(arr, 0, len(arr)-1)
    return arr
}

// 归并排序 O(nlogn)
// 是一种分而治之的算法,其思想是将一个列表分解为几个子列表,
// 直到每个子列表由一个元素组成,然后将这些子列表合并为排序后的列表。
// 先把数组从中间分成前后两部分,然后对前后两部分分别排序,
// 再将排好序的两部分合并在一起,这样整个数组就都有序了。
func mergeSort(arr []int, left, right int) {

    if left < right {
        mid := left + (right-left)>>1
        mergeSort(arr, left, mid)
        mergeSort(arr, mid+1, right)
        merge(arr, left, mid, right) //通过比较2个部分的元素来合并2个部分
    }
}
// 合并2个有序数组
func merge(arr []int, left, mid, right int) {
    tmp := make([]int, right-left+1)
    i, j,k := left, mid+1,0
    for i <= mid && j <= right {

        if arr[i] <= arr[j] {
            tmp[k] = arr[i]
            i++
        } else {
            tmp[k] = arr[j]
            j++
        }
        k++
    }
    for i <= mid {
        tmp[k] = arr[i]
        k++
        i++
    }
    for j <= right {
        tmp[k] = arr[j]
        k++
        j++
    }
    copy(arr[left:right+1], tmp)

}

ref

相关文章

  • 归并排序的递归实现与非递归实现

    归并排序 归并排序图 递归实现简介代码示例 mergesort(left,right,**a){ if(l...

  • 算法分析与设计复习

    1、排序算法 QuickSort 快速排序 MergeSort 归并排序 HeapSort 堆排序 BubbleS...

  • 排序算法(2):归并排序

     归并排序:归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,...

  • python归并排序--递归实现

    归并排序: 归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,...

  • 排序算法-5--- 归并排序

    归并排序 Merge sort 1、概念 归并排序(英语:Merge sort,或mergesort),是创建在归...

  • 归并排序

    什么是归并排序? 归并排序(Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,...

  • python实现归并排序(MergeSort)

    python实现【归并排序】(MergeSort) 算法原理及介绍 归并排序的核心原理是采用分治法(Divide ...

  • 归并排序

    归并排序 归并排序(Mergesort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分...

  • 第三章:高级排序算法

    归并排序算法(mergeSort) 算法思想:Python使用函数实现: 自底向上的归并排序算法 算法思想:Pyt...

  • 时间复杂度为O(nlogn)的算法

    mergeSort 口诀: 左拆分,左合并,右拆分,右合并,最后合并左右。 归并排序的逻辑 归并排序的战略(宏观)...

网友评论

      本文标题:温习mergesort归并排序

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