一、引例 —— 钱币找零问题贪心算法的思想非常简单且算法效率很高,在一些问题的解决上有着明显的优势。
假设有3种硬币,面值分别为1元、5角、1角。这3种硬币各自的数量不限,现在要找给顾客3元6角钱,请问怎样找才能使得找给顾客的硬币数量...
一、术语介绍先来说几个动态规划问题中的术语。
动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程最优化的数学方法。20世纪50年代初美国数学家在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,...
一、基本思想字面上的解释是“分而治之”,就是将一个规模为N的问题分解为K个规模较小的子问题( 反复分解直到问题小到可直接求解为止),使这些子问题相互独立可分别求解,再将k个子问题的解合并成原问题的解。
这些子问题相互独立且与原问题性...
一、穷举(枚举、暴力、强力)算法1.1 基本思想在可能的解空间中穷举出每一种可能的解,并对每一个可能解进行判断,从中得到问题的答案。穷举算法效率并不高,但是适应于一些没有明显规律可循的场合。
使用穷举法思想解决实际问题,最关键的步骤是...
一、数据结构1.1 概述1.1.1 数据结构是什么?对于数据结构这个概念,至今尚未有一个被一致公认的定义,不同的人在使用这个词时所表达的意思有所不同。
“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系...
一、模块化1.1 什么是模块化那么,到底什么是模块化开发呢?
模块:1、在通信、计算机、数据处理控制系统的电路中,可以组合和更换的硬件单元。2、大型软件系统中的一个具有独立功能的部分。
现实生活中模块化的例子:模块化计算机(cp...
原文链接 Fiber 不是一个新的东西,来看一下单处理进程调度
一、单处理器进程调度
微软 DOS 是一个单任务操作系统, 也称为’单工操作系统‘。这种操作系统同一个时间只允许运行一个程序。 invalid s在《在没有GUI的时代...
一、什么是协程协程,又称微线程,纤程。英文名Coroutine。
协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。
子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C...
原文链接:谈谈 DSL 以及 DSL 的应用(以 CocoaPods 为例)
因为 DSL 以及 DSL 的界定本身就是一个比较模糊的概念,所以难免有与他人观点意见相左的地方,如果有不同的意见,我们可以具体讨论。
这次文章的题...
目的:构建自己的一个组件,放在公司的私有pod库中,然后可以通过cocoapod来导入这个pod库。
一、几个概念在构建私有库之前,先了解以下几个基本概念
repo(repository仓库)
Pod(代码库)。分为:(Pod译...
在学习组件化架构的过程中,从很多高质量的博客中学到不少东西,例如蘑菇街李忠、casatwy、bang的博客。在学习过程中也遇到一些问题,在微博和QQ上和一些做iOS的朋友进行了交流,非常感谢这些朋友的帮助。
本篇文章组件化架构漫谈主...
在iOS的开发过程中总是免不了要不停的打包,通常的打包方式是这样的 XCode->Archive->Export,期间还要选择对应的证书与pp文件,进行一次打包会花不少的时间,在打包的过程中我们是不能修改源代码的。
下面有...
一、容器1.1 定义汉语释义:
容器(Container)是一种基础工具。泛指任何可以用于容纳其它物品的工具。
容器的特性:
可以部分或完全封闭。— 隔离性
被用于容纳、储存、运输物品。 — 便携性、换到程序的概念就是可移植性
...
原文链接 — 《Docker 入门教程》
2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。
但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文就来详细解释,帮助大家理解它,还...
一、同步
协调,实现步调一致。两个或几个随时间变化的量,在变化过程中(在时域序列上相对位置)保持一定的相对/约束关系(这个关系分很多种:可以是两者同时做指定的事、也可以是两者先后做指定的事等)。
比如:
音画同步、动作同步等。指某...
ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。
本文只列举一些常见的基本指令,可以正常阅读汇编代码即可。有几个注意点:
寄存器:为标号,不加...
一、概述1.2 汇编语言早期的程序员发现机器语言在阅读、书写方面的问题,是如此的难以辨别和记忆,需要记住所有抽象的二进制码,为了解决这个问题,汇编语言就产生了。汇编语言是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控...
命令行界面已经使用了很久,平时也有很多常用的命令行工具,但是对一些相关的概念(终端、Shell、命令、脚本等)却一直有些似懂非懂,今天记录一下,一是梳理自己的思路,二也是希望能对读到这篇博客的人有所帮助。
命令行界面(CLI)和命令...
本文主要是梳理机器指令、汇编指令、系统调用(OS Kernel)、语言库、应用程序和OS Shell的层次关系。
一、概述首先看一下软硬件间的关系,如图所示:
二、硬件 — CPU指令集一般指令集专利持有者在设计指令集的时候,往往...
本篇文章偏硬件科普,没有什么实质性的技术知识。
一、指令集
以下摘自维基百科
指令集架构(Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系,有的地方也称为CPU架构。包含了一系列的op...