摘要:
1. 前言 从语言的分类角度而言,C++是一种非常特殊的存在。属于高级语言范畴,但又具有低级语言的直接访问硬件的能力,这也成就了C++语言的另类性,因保留有其原始特性,其语法并不象其它高级语言一样易理解,但处理能力却比其它语言高很多。 从语言的处理能力和速度而言,让人爱;从语法体系角度而言,对于学习 阅读全文
摘要:
1. 概述 动态规划算法应用非常之广泛。 对于算法学习者而言,不跨过动态规划这道门,不算真正了解算法。 初接触动态规划者,理解其思想精髓会存在一定的难度,本文将通过一个案例,抽丝剥茧般和大家聊聊动态规划。 动态规划算法有 3 个重要的概念: 重叠子问题。 最优子结构。 状态转移。 只有吃透这 3 个 阅读全文
摘要:
1. 前言 数据结构和算法是程序的 2 大基础结构,如果说数据是程序的汽油,算法则就是程序的发动机。 什么是数据结构? 指数据在计算机中的存储方式,数据的存储方式会影响到获取数据的便利性。 现实生活中,如果把春夏秋冬的衣物全部堆放在一起,当需要某一季节的衣服时,寻找起来是困难的。 如果分门别类、有条 阅读全文
摘要:
1. 前言 微信小程序开发平台,提供有一类 API,可以让开发者获取到微信登录用户的个人数据。这类 API 统称为开放接口。 Tip:微信小程序开发平台,会把微信登录用户的个人信息分为明文数据和敏感数据。 明文数据也称为公开数据,开发者可以直接获取到,如登录者的昵称、头像…… 敏感数据如电话号码、唯 阅读全文
摘要:
1. 前言 哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好的、可直接使用的 API,如 JAVA 中有 MAP 集合、C++ 中的 MAP 容器,Python 阅读全文
摘要:
什么是树表查询? 借助具有特殊性质的树数据结构进行关键字查找。 本文所涉及到的特殊结构性质的树包括: 二叉排序树。 平衡二叉树。 使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求,也得益于这种限制,在查询某一个结点时会带来性能上的优势和操作上的方便。 树表查询属于动态查找算法。 阅读全文
摘要:
查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有: 线性查找: 线性查找也称为顺序查找,用于在无序数列中查找。 二分查找: 二分查找也称为折半查找,其算法用于有序数列。 插值查找: 插值查找是对二分查找算法的改进。 分块查找: 又称为索引顺序查找,它是线性查找的改进版 阅读全文
摘要:
本文从树数据结构说到二叉堆数据结构,再使用二叉堆的有序性对无序数列排序。 1. 树 树是最基本的数据结构,可以用树映射现实世界中一对多的群体关系。如公司的组织结构、网页中标签之间的关系、操作系统中文件与目录结构……都可以用树结构描述。 树是由结点以及结点之间的关系所构成的集合。关于树结构的更多概念不 阅读全文
摘要:
1. 前言 本文将介绍希尔排序、归并排序、基数排序(桶排序)。 在所有的排序算法中,冒泡、插入、选择属于相类似的排序算法,这类算法的共同点:通过不停地比较,再使用交换逻辑重新确定数据的位置。 希尔、归并、快速排序算法也可归为同一类,它们的共同点都是建立在分治思想之上。把大问题分拆成小问题,解决所有小 阅读全文
摘要:
1. 前言 所谓排序,就是把一个数据群体按个体数据的特征按从大到小或从小到大的顺序存放。 排序在应用开发中很常见,如对商品按价格、人气、购买数量……显示。 初学编程者,刚开始接触的第一个稍微有点难理解的算法应该是排序算法中的冒泡算法。 我初学时,“脑思维”差点绕在 2 个循环结构的世界里出不来了。当 阅读全文