排序算法七:计数排序

一、计数排序 其基本思想为:假设 n 个输入的元素中的每一个都是在 0 到 k 之间的一个整数,对于每一个输入元素 x,确定小于 x 的元素个数,直接把 x 放在它输出的数组中的位置上。例如有 17 个元素小于 x,则 x 就应该在数组的第 18 个位置上。当有几个元素相同时,这一方案就要略作修改,不能都放在同一个位置上。 计数排序需 ... 阅读更多

进程和线程的区别

一、两者对比 进程是最小的资源分配单位,线程是最小的执行单位: 每个进程至少有一个线程,任务的执行都是由线程来完成,也就是说,线程时进程运行时的实体。 线程运行时依赖进程中分配的资源,一个进程可以有多个线程,但是每个线程只属于一个进程。 进程之间相互独立,线程之间数据共享: 每个进程拥有自己独立的地 ... 阅读更多

给 alpine 的 docker 镜像添加 bash 支持

alpine 是一个轻量级的 linux 系统,由于太轻量了,目前被广泛用于 docker 镜像的制作上了 (最新版的 docker 镜像才 5M) 。 体积小就有缺点了,缺点就是内部除了基本的命令以外,大部门的功能都不支持,默认连 bash 都没有。需要自己手动添加并重新构建。 1. 基于 alpine:3.8 添加 bash ... 阅读更多

linux 可执行程序 elf 文件分析及进程的内存分布情况

一、 ELF 文件 ELF(Executable and Linkable Format) 文件是 linux 下的二进制可执行文件,它同时兼容可执行文件和可链接文件。 一个 ELF 文件包含两个部分:一个固定长度的文件头和多个可扩展的数据块。其中,文件头是整个可执行文件的总地图,描述了整个文件的组织结构。可扩展 ... 阅读更多

Golang 编译的二进制文件在 alpine 中无法运行的问题解决

一、问题现象 使用 golang 编译了一个二进制程序,在 CentOS 和 Ubuntu 的镜像上运行是可以的,但是在 Alpine 运行就不行,使用./运行报错:

二、解决方案 编译时添加参数 CGO_ENABLED=0,关闭 CGO 就可以了: [c ... 阅读更多

Navicate Premium 12 破解安装

Navicate Premium 12 的下载地址:下载密码 sangfor!@# 下载后先安装软件,装好后解压目录下的 rar 包,打开 Navicat_Keygen_Patch_v4.5_By_DFoX.exe,以此执行以下操作: 第一步点击右上角的 Patch 替换文件,需要手动选择安装目录的地址: 替换成 ... 阅读更多

STL 中 map 的使用方法和注意事项

使用 map 要添加头文件 #include <map>,命名空间 using namespace std 。 初始化一个 map:

对于 C++11,还可以在初始化时设定一系列初始值: [crayon-695363b3aecc0939 ... 阅读更多