
算法
u010221220
这个作者很懒,什么都没留下…
展开
-
堆排序简单梳理
堆排序梳理背景算法思维代码实现背景今天在做一个中位数相关算法题时发现需要用到优先队列,突然发现自己对堆排序的一些细节有些模糊了,于是乎对这块进行一个梳理。算法思维理解堆排序的核心是堆的定义是什么, 通常堆分为大顶堆,小顶堆。这里我以大顶堆为例聊一下堆排序。大顶堆需要满足一下性质:是一颗完全二叉树; 这个性质使得我们可以用数组来对树结构进行描述,可以通常数组下标之间的关系表达树节点的父子关系。对于这课树的任意子树,父节点的值都大于子节点的值;这是一种递归的定义,从这条性质我们可以得出堆是一棵满原创 2020-09-26 22:35:01 · 170 阅读 · 0 评论 -
递归呀,递归
第一次写博客,谈一谈自己对于递归的理解吧,大神请绕过。作为一名初学者对递归的灵活应用还是挺困难的。首先什么是递归呢????????????????是这样的递归是函数调用的一种特殊形式,那特殊在哪呢??这得先看下一般的函数调用,比如说在main函数里调用函数funcA(),而函数funcA()里面又调用了函数funcB().递归是这样子在main函数里调用函数funcA()然后在原创 2016-03-03 20:57:27 · 1620 阅读 · 1 评论 -
让人蛋疼的KMP算法
昨天刷题再次偶遇KMP算法,这个算法之前来来回回折腾了好多次了,不理解好像理解了能写代码实现了又不理解又好像理解了。。。。。。。今天在这里整理下我个人对KMP算法的理解也给想了解这个算法的朋友一点参考。在写之前先说明一下本文中的图片除最后一个其它均来自http://blog.youkuaiyun.com/v_july_v/article/details/7041827,这篇博客讲的挺好,大家可以看一下原创 2016-03-11 13:14:07 · 446 阅读 · 0 评论 -
sync.map源码分析
文章目录sync.map源码阅读分享概述两份数据之间的关系怎么表达两份数据转换的时机一些常用的操作读操作写操作删除操作总结sync.map源码阅读分享概述最近在项目中遇到过对线程不安全的map并发写的错误。小菜鸟之前是写java的知道jdk中有提供的线程安全的map,于是乎在想golang中是不是也有呢?搜索了一下还真有,sync.map。然后阅读了一下其底层实现源码,在此整理了一下自己的理...原创 2020-08-28 14:01:46 · 348 阅读 · 0 评论