排序算法五:堆排序 数据结构和算法

排序算法五:堆排序

一、堆排序原理 通过最大堆的性质可以知道:一个堆中最大的元素总是在堆顶的,即数组下标 0 的位置。基于这一点,我们可以每次都把堆中的最大值提取出来,放到当前数组的后面。然后重新构建最大堆,重复这个过程,以...
阅读全文
数据结构之堆 数据结构和算法

数据结构之堆

一、堆 堆是一种数据结构,通常通常所说的堆即二叉堆。二叉堆是一个数组,可以被看成一个完全二叉树,如下图所示: 他在数组中的表现形式为: 通过数组很容易得到每个父节点和其子节点的关系,假设数组的起始下标...
阅读全文
排序算法七:计数排序 数据结构和算法

排序算法七:计数排序

一、计数排序 其基本思想为:假设 n 个输入的元素中的每一个都是在 0 到 k 之间的一个整数,对于每一个输入元素 x,确定小于 x 的元素个数,直接把 x 放在它输出的数组中的位置上。例如有 17 个元素小于 x,则 x 就应该在...
阅读全文
进程和线程的区别 操作系统

进程和线程的区别

一、两者对比 进程是最小的资源分配单位,线程是最小的执行单位: 每个进程至少有一个线程,任务的执行都是由线程来完成,也就是说,线程时进程运行时的实体。 线程运行时依赖进程中分配的资源,一个进程可以有多...
阅读全文
给alpine的docker镜像添加bash支持

给 alpine 的 docker 镜像添加 bash 支持

alpine 是一个轻量级的 linux 系统,由于太轻量了,目前被广泛用于 docker 镜像的制作上了 (最新版的 docker 镜像才 5M) 。 体积小就有缺点了,缺点就是内部除了基本的命令以外,大部门的功能都不...
阅读全文