归并排序及其kotlin实现

Posted jason31

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归并排序及其kotlin实现相关的知识,希望对你有一定的参考价值。

归并排序的基本原理是,先将一个数组递归地二分,然后在分到一定程度之后将它们重新组合,并且在组合的过程中按顺序排列,达到排序的目的。

 

import java.util.*

fun merge(a:Array<Int>, low:Int, mid:Int, high:Int){
    var temp = IntArray(high-low+1)
    var i:Int = low
    var j:Int = mid + 1
    var k:Int = 0
  //合并过程 while( i<= mid && j<= high){ temp[k++] = if(a[i]< a[j]) a[i++] else a[j++] } while(i<= mid) temp[k++] = a[i++] while(j<= high) temp[k++] = a[j++] for(k2 in temp.indices) a[k2+ low] = temp[k2] } fun mergeSort(a:Array<Int>, low:Int, high:Int){ var mid:Int = (low+ high)/ 2 if( low< high){ mergeSort(a, low, mid) mergeSort(a, mid+1, high) merge(a, low, mid, high) } } fun main(args:Array<String>){ var a = arrayOf(37, 26, 12, 8, 63, 5, 9, 57, 60) mergeSort(a, 0, a.size-1) println("结果:${Arrays.toString(a)}") }

 


以上是关于归并排序及其kotlin实现的主要内容,如果未能解决你的问题,请参考以下文章

归并排序及其应用场景

归并排序算法及其JS实现

九大排序算法及其实现- 插入.冒泡.选择.归并.快速.堆排序.计数.基数.桶排序

算法排序02——归并排序介绍及其在分治算法思想上与快排的区别(含归并代码)

归并排序及其复杂度

归并排序及其复杂度