- 博客(6)
- 收藏
- 关注
原创 堆排序简单梳理
堆排序梳理背景算法思维代码实现背景今天在做一个中位数相关算法题时发现需要用到优先队列,突然发现自己对堆排序的一些细节有些模糊了,于是乎对这块进行一个梳理。算法思维理解堆排序的核心是堆的定义是什么, 通常堆分为大顶堆,小顶堆。这里我以大顶堆为例聊一下堆排序。大顶堆需要满足一下性质:是一颗完全二叉树; 这个性质使得我们可以用数组来对树结构进行描述,可以通常数组下标之间的关系表达树节点的父子关系。对于这课树的任意子树,父节点的值都大于子节点的值;这是一种递归的定义,从这条性质我们可以得出堆是一棵满
2020-09-26 22:35:01 154
原创 golang channel源码学习
chan源码学习为什么看channel源码channel概述细节分析channel创建channel读操作channel写操作channel close操作总结为什么看channel源码使用golang半年多,平时主要忙于用golang写业务逻辑。对golang多协程和channel等优雅的特性接触的比较少。最近难得有时间不用搬砖,因此通过读源码了解下在使用这些特性的时候底层(源码级别)到底发...
2020-08-28 14:02:35 135
原创 sync.map源码分析
文章目录sync.map源码阅读分享概述两份数据之间的关系怎么表达两份数据转换的时机一些常用的操作读操作写操作删除操作总结sync.map源码阅读分享概述最近在项目中遇到过对线程不安全的map并发写的错误。小菜鸟之前是写java的知道jdk中有提供的线程安全的map,于是乎在想golang中是不是也有呢?搜索了一下还真有,sync.map。然后阅读了一下其底层实现源码,在此整理了一下自己的理...
2020-08-28 14:01:46 326
原创 split函数解析
为什么写这篇博客??在字符串处理过程中经常会用到split函数将字符串分割成字符串数组。但是因为这个东西拿过来直接用就行很方便,但是经常出错因为不知道细节往往不好查错。于是乎今天好好读了这个源码,想把自己的理解分享一下同时有些没大看懂的地方需要高人指点。先上源码:public String[] split(String regex, int limit) { /*
2016-03-21 17:24:58 5894
原创 让人蛋疼的KMP算法
昨天刷题再次偶遇KMP算法,这个算法之前来来回回折腾了好多次了,不理解好像理解了能写代码实现了又不理解又好像理解了。。。。。。。今天在这里整理下我个人对KMP算法的理解也给想了解这个算法的朋友一点参考。在写之前先说明一下本文中的图片除最后一个其它均来自http://blog.csdn.net/v_july_v/article/details/7041827,这篇博客讲的挺好,大家可以看一下
2016-03-11 13:14:07 431
原创 递归呀,递归
第一次写博客,谈一谈自己对于递归的理解吧,大神请绕过。作为一名初学者对递归的灵活应用还是挺困难的。首先什么是递归呢????????????????是这样的递归是函数调用的一种特殊形式,那特殊在哪呢??这得先看下一般的函数调用,比如说在main函数里调用函数funcA(),而函数funcA()里面又调用了函数funcB().递归是这样子在main函数里调用函数funcA()然后在
2016-03-03 20:57:27 1597 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人