博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
引言-算法-Go
阅读量:6633 次
发布时间:2019-06-25

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

要说的话~

     开始Go语言有一段时间,学习的过程感觉挺好的,我认为学好一门语言的基础,就是拿它实现我们常用的数据结构和算法,正好,这段时间也想把数据结构和算法好好梳理一下,并且把自己工作这几年的一些点滴回忆一下,分享一下,因此开了此博客。这主要是算法的板块,我主要会以Go语言来实践,也可能会出现一些C或Java代码。

  吐槽一下博客园没有Go的代码模板......

小试牛刀,先写两个简单的算法吧!

  • 冒泡排序
  • /** *这是一个排序的工具包,里面实现了基本的排序算法。 */package sort/** * 冒泡排序法 */func BubbleSort(toSortArray []int) {    lenth := len(toSortArray)    for i := 0; i < lenth-1; i++ {        for j := 0; j < lenth-i-1; j++ {            if toSortArray[j] > toSortArray[j+1] {                //交换二者的值真是方便啊                toSortArray[j], toSortArray[j+1] = toSortArray[j+1], toSortArray[j]            }        }    }}

     

  • 折半查找
  • package searchconst (    //未找到标识    NotFound = -1)/** * 输入数组切片(该数组切片是已经按照升序排序好的)和一个已知的数X,查找数X在数组切片的索引。 */func BinarySearch(aSlice []int, x int) (index int) {    low, hight := 0, len(aSlice)-1    for {        if low > hight {            break        }        middle := (low + hight) / 2        if aSlice[middle] < x {            low = middle + 1        } else if aSlice[middle] > x {            hight = middle - 1        } else {            return middle        }    }    return NotFound}
  • Go语言里面没有while和do...while语法,不过我们可以通过for实现,具体可看我的另一篇博文这里相当于C语言的while循环。

转载于:https://www.cnblogs.com/requelqi/p/3664191.html

你可能感兴趣的文章
First day of Python
查看>>
表单的重复提交问题
查看>>
闰年的判断方法 和 当目前为止你生存的天数计算方法
查看>>
linux popen获取ip地址,使用popen函数读取命令输出失败
查看>>
切换 ip 批处理
查看>>
CommandArgument 绑定多个参数
查看>>
dropdownlist可以多选。类似的例子。。。
查看>>
Objective-C 内存管理
查看>>
Linux下rz,sz与ssh的配合使用
查看>>
pku 1054 The Troublesome Frog 暴力+剪枝
查看>>
串行,并行,并发
查看>>
linux NFS
查看>>
Jquery DataTable基本使用
查看>>
leetcode 674. Longest Continuous Increasing Subsequence
查看>>
Java中CAS详解
查看>>
Linux系统实战项目——sudo日志审计
查看>>
Android Application Task Activities的关系
查看>>
get app id
查看>>
[俗一下]世界500强公司的面试问题与答案提示 [转]
查看>>
使用 Excel Services ,结合 Analysis Services 在 SharePoint 中发布报表
查看>>