算法相关GitHub持续更新,欢迎打脸~ 排序算法之选择排序 时间复杂度:O(n2) 空间复杂度:O(1) 是否稳定:不稳定 1 算法: 选择排序算法的运作如下:(从前往后) 第1趟,在待排序记录r[1]~r[n]中选出…
分类:架构
从Deadlock报错理解Go_channel机制(二)
上一篇主要讨论了无缓冲信道遭遇死锁的几种情况,这篇文章我们继续讨论信道的另一种类型——缓冲信道(buffered channel)。 基本性质 缓冲信道顾名思义,就是带有缓冲区(buffered)的信道。缓冲区作为数据的…
排列组合问题
题目 给出一个二维数组,得到所有想要结果的二维数组。 比如: let arr = [ ['red','yellow'], ['s','m'] ]; 希望得到的结果 [ ['red','s'], ['red','m'], …
Unity优化——字符串篇
处理字符串和文本是Unity项目中性能问题的常见来源。在C#中,所有的字符串都是不可变的。对字符串的任何操作都将导致分配一个完整的新字符串。 当连接N个字符串的时候,会有N-1中间字符串分配,依次连接也会给内存管理带来压…
简单实现Promise,await,async
我们处理异步的方式,从开始的回调,到Promise,再到现在的async,await,变得越来越方便,直观了。但是知其然要知其所以然,所以我们一步步来分析他们是如何实现的(需要知道Promise的使用方法,await a…
剑指offer第二版-59.滑动窗口的最大值
本系列导航:剑指offer(第二版)java实现导航帖 面试题59:滑动窗口的最大值 题目要求: 给定一个数组和滑动窗口的大小,请找出所有滑动窗口的最大值。例如,输入数组{2,3,4,2,6,2,5,1}和数字3,那么一…
接口抽象化设计
目标:系统设计中存在一些公共接口的设计和接口的一些公共方法的实现以及多种多样的实现类 实现:接口+抽象类+实现类–能够产生非常方便的系统实现 比如:接口类的设计 interface A{public void…
对新型软件程序语言及架构的一点讨论
提要:OO之后,软件程序架构领域再无大师。一个看似简单而根本的问题从真正未解决,那就是软件或计算机的世界与现实世界的关系。 程序架构与软件、应用架构 最近一直在关注豆瓣上Zhang3关于新型程序语言研究的情况[1],及一…
js 纯函数思想
纯函数 若一个函数对相同的输入,永远会得到相同的输出,并且不会影响该函数作用域以外的环境变量,则此函数称为纯函数。 纯函数和非纯函数: // 纯函数 function add(a) { var b = 0; return…
遍历ArrayList,HashSet,HashMap。(全面)
前言:因为看到网上关于循环遍历,好多博客内容都比较少,要么只说了list,要么只说了set或者map,我想整理一下,所以就把几个整理到一起。也做了一些总结,希望对大家也有所帮助。以下demo的完整代码可以在github上…
递归--例子与简单分析
递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程 ————R…
剑指offer(第一版)java实现
github地址:https://github.com/ryderchan/point-to-offer-edition1 包含如下内容: 1.该书的高清PDF 2.chapter2~5为第二章到第五章的例题 3.str…