算法代码实现之归并排序,Golang(Go语言)实现,自顶向下与自底向上两种方式

前端之家收集整理的这篇文章主要介绍了算法代码实现之归并排序,Golang(Go语言)实现,自顶向下与自底向上两种方式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

封装成函数

  
  
//自顶向下归并排序@H_403_29@func @H_403_29@MergeSortUpToDown@H_403_29@(@H_403_29@s @H_403_29@[]@H_403_29@int@H_403_29@)@H_403_29@ @H_403_29@{@H_403_29@ aux @H_403_29@:=@H_403_29@ make@H_403_29@([]@H_403_29@,@H_403_29@ len@H_403_29@s@H_403_29@))@H_403_29@ @H_403_29@//辅助切片@H_403_29@ mergeSortUpToDown@H_403_29@ aux@H_403_29@ @H_403_29@0@H_403_29@)-@H_403_29@1@H_403_29@)@H_403_29@}@H_403_29@//自底向上归并排序@H_403_29@func @H_403_29@MergeSortDownToUp@H_403_29@ n @H_403_29@ @H_403_29@for@H_403_29@ sz @H_403_29@;@H_403_29@<@H_403_29@ n@H_403_29@*=@H_403_29@2@H_403_29@ lo @H_403_29@-@H_403_29@sz@H_403_29@+=@H_403_29@*@H_403_29@ merge@H_403_29@ lo@H_403_29@+@H_403_29@-@H_403_29@ min@H_403_29@lo@H_403_29@+@H_403_29@2@H_403_29@}@H_403_29@}@H_403_29@func mergeSortUpToDown@H_403_29@ hi @H_403_29@if@H_403_29@>=@H_403_29@ hi @H_403_29@return@H_403_29@ mid @H_403_29@lo @H_403_29@ hi@H_403_29@>>@H_403_29@1@H_403_29@ mid@H_403_29@//归并操作@H_403_29@func merge@H_403_29@ k @H_403_29@<=@H_403_29@ k@H_403_29@++@H_403_29@[@H_403_29@k@H_403_29@]@H_403_29@=@H_403_29@ s@H_403_29@ i@H_403_29@ j @H_403_29@ i @H_403_29@>@H_403_29@j@H_403_29@ j@H_403_29@else@H_403_29@i@H_403_29@func min@H_403_29@ j @H_403_29@int@H_403_29@ j@H_403_29@}@H_403_29@

测试:

{@H_403_29@9@H_403_29@403_29@6@H_403_29@5@H_403_29@8@H_403_29@7@H_403_29@4@H_403_29@3@H_403_29@fmt@H_403_29@.@H_403_29@Println@H_403_29@)@H_403_29@MergeSortUpToDown@H_403_29@)@H_403_29@//MergeSortDownToUp(s)@H_403_29@)@H_403_29@

输出

[9 0 6 5 8 2 1 7 4 3] [0 1 2 3 4 5 6 7 8 9]

猜你在找的Go相关文章