首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Golang入门学习与算法
程序员张一笑
创建于2021-05-18
订阅专栏
收录Golang入门基础和基于Golang实现的常见算法题
等 1 人订阅
共20篇文章
创建于2021-05-18
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
排序之快速排序|Go主题月
快速排序也采用分治策略,但不需要使用额外的存储空间。快速排序算法首先选出一个基准值,然后计算分割点(为基准值找到正确的位置)。
排序之归并排序|Go主题月
归并排序是使用分治策略的一种递归算法,每次将一个切片数组一分为二。需要注意需要额外的空间存储排序过程中左右两半数组。
排序之希尔排序(减少步长排序)|Go主题月
希尔排序是以其设计者希尔(Donald Shell)名字命名,也称“缩小步长排序”,它对插入排序做了改进: 将列表分成数个子列表; 并对每一个子列表使用插入排序算法进行排序。
排序之插入排序|Go主题月
插入排序: 它在列表较低即列表的头部一端维护一个有序的 子列表,并逐个将每个新元素“插入”这个子列表。较选择排序更快点。
排序之选择排序|Go主题月
选择排序为在冒泡排序的基础上进行优化的一种排序算法,每次遍历只进行一次元素交换。 为了实现只进行一次交换: 那么需要在遍历中寻找出待排序元素中的最大值; 在遍历完后,把最大值放到正确的位置上。
排序之冒泡排序|Go主题月
排序:按照某种顺序排列数据。 例如:一组单词按照字母顺序排序;一组单词按照单词长度进行排序。此处图解介绍冒泡排序算法。
散列表之冲突碰撞处理|Go主题月
假如存在这么一个情况:给定任意一个元素集合,能将每个元素映射到不同的槽,那么就永远都不会有冲突(碰撞)。 上述情况称之为完美散列函数,但是很多时候需要处理冲突。处理方法主要有探测法和链接法。
搜索之散列搜索|Go主题月
散列搜索 结论:散列搜索的时间复杂度理论上为O(1)。为什么会是O(1)?为什么说是理论上为O(1)?
搜索之顺序搜索二分搜索|Go主题月
搜索是指从元素集合中找到某个特定元素的过程。搜索过程通常返回true或false,分别表示元素是否存在。
硬币找零之动态规划法|Go主题月
对于找零时使用最少的硬币,已经尝试过贪婪算法和递归算法,下面将使用动态规划策略来解决最优化问题。动态规划:用于寻找最优化问题,比如寻找最短路径。
硬币找零之递归算法|Go主题月
硬币找零之贪婪算法在计算找零最少硬币数量未必得到最优解。如果要一定找到最优解,那么递归会是非常优雅的方法。
硬币找零之贪婪算法|Go主题月
优化问题经典例子:找零时使用最少数量的硬币。本文尝试贪婪算法:从面值最大的硬币(25 美分)开始,使用尽可能多的硬币,然后尽可能多地使用面值第 2 大的硬币。
细聊递归(二)|Go主题月
使用递归优雅解决一个十进制整数转换为2-16为基数的任意进制字符串。例如,255转换为十进制的11111111
细聊递归(一)|Go主题月
递归是一种分而治之很优雅解决问题的方法,它将问题不断地分成更小的子问题,直到子问题可以用普通的方法解决。
LeetCode125 验证回文串|Go主题月
回文串:从前往后读和从后往前读都一样的字符串,例如 radar、toot,以及 madam。 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 这里利用了双端队列数据结构进行同时从两头取数据,如果出现不相等,则明显不是回文。 以上为验证回文的两种…
06Golang工程管理|Go主题月
在实际的开发工作中,直接调用编译器进行编译和链接的场景是少而又少,因为在工程中不 会简单到只有一个源代码文件,且源文件之间会有相互的依赖关系。如果这样一个文件一个文件逐步编译,那不亚于一场灾难。 Go语言的设计者作为行业老将,自然不会忽略这一点。早期Go语言使用makefile…
05Golang函数|Go主题月
函数构成代码执行的逻辑结构。在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。 不定参数是指函数传入的参数个数为不定数量。为了做到这点,首先需要将函数定义为接受不定参数类型: 有返回值的函数,必须有明确的return终止语句,否则会引发…
04Golang流程控制|Go主题月
Go语言支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。 顺序结构:程序按顺序执行,不发生跳转。 选择结构:依据是否满足条件,有选择的执行相应功能。 循环结构:依据条件是否满足,循环多次执行某段代码。 if ... else if ... else if ... e…
03Golang运算符|Go主题月
关系运算的结果是布尔类型的。 |!| 非| !a| "如果a为假,则!a为真;如果a为真,则!a为假。"| |&& |与| a && b| 如果a和b都为真,则结果为真,否则为假。| ||| |或| a || b| 如果a和b有一个为真,…
02Golang基础类型|Go主题月
Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的:heapSort和Heapsort是两个不同的名字。 …