博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归并排序及其kotlin实现
阅读量:4364 次
发布时间:2019-06-07

本文共 896 字,大约阅读时间需要 2 分钟。

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

 

import java.util.*fun merge(a:Array
, 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
, 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
){ var a = arrayOf(37, 26, 12, 8, 63, 5, 9, 57, 60) mergeSort(a, 0, a.size-1) println("结果:${Arrays.toString(a)}")}

 

转载于:https://www.cnblogs.com/jason31/p/9680683.html

你可能感兴趣的文章
数据值、列类型和数据字段属性
查看>>
职业规划
查看>>
JavaScript设计模式 Item 3 --封装
查看>>
一段个性化stringgrid的代码
查看>>
wx.ScrolledWindow wx.PseudoDC
查看>>
莫比乌斯反演
查看>>
【BZOJ】【1041】【HAOI2008】圆周上的点
查看>>
高并发常见面试题
查看>>
java面向对象中的抽象,类与对象
查看>>
Git学习笔记
查看>>
《Java技术》第二次作业计科1501赵健宇
查看>>
判断线段和直线相交 POJ 3304
查看>>
下拉菜单
查看>>
.net中调用exchange服务器发邮件
查看>>
nginx知识问答
查看>>
JS - 跳转页面
查看>>
显示消息提示对话框(WebForm)
查看>>
分享下自己编译 XBMC 的过程(zhuan)
查看>>
selenium3 + python - cookie定位
查看>>
通过百度地图API获取地址经纬度
查看>>