
s算法
文章平均质量分 85
zerokkqq
这个作者很懒,什么都没留下…
展开
-
TTF字体文件结构
TTF字体文件结构2009-02-10 13:35TrueType 字体通常包含在单个TrueType字体文件中,其文件后缀为.TTF。OpenType字体是以类似 于TrueType字体的格式编码的POSTSCRIPT字体。OPENTYPE字体使用.OTF文件后缀。OPENTYPE还允许把多个 OPENTYPE字体组合在一个文件中以利于数据共享。这些字体被称为TrueType字体集(TrueType collection),其文件后缀为.TTC。TrueType字体用machintosh的轮廓原创 2011-04-18 22:28:00 · 12728 阅读 · 2 评论 -
深入理解游戏中寻路算法
摘要: 看似寻常的路径行走,在程序看来就需要一定的寻路算法来解决,如何在最短时间内找到一条路径最短的路线,这是我们首要考虑的问题。如果你玩过MMOARPG游戏,比如魔兽,你会发现人物行走会很有趣,为了模仿人物行走的真实体验,他们会选择最近路线达到目的地,期间会避开高山或者湖水,绕过箱子或者树林,直到走到你所选定的目的地。这种看似寻常的寻路在程序实现起来就需要一定的寻路算法来解决,如转载 2017-07-28 20:49:08 · 22596 阅读 · 1 评论 -
利用单链表实现栈
栈是一种仅限于在头尾操作的数据结构,和队列相反,栈的特点是“现金后出”,因此又称为LIFO。和队列一样,栈也有链表和数组两种实现方式,各自的优缺点和介绍队列时提到的基本相同。以下介绍使用链表实现栈的方式(链式栈)。下面是链式栈的示意图:因为栈的特点是“先进后出”,因此我们只需要一个指针指示栈顶即可,因为无论插入或者删除都是针对顶部的节点而已,也就是说,我们需要实现一个“头节点”会变化的链表,并且每...转载 2018-03-19 13:51:51 · 533 阅读 · 0 评论 -
「Python」PNG OR JPG Convert to WebP
PNG/JPG Convert to Webp(Python)前言关于webp 的优势以及原理性的东西,之前看过腾讯的一篇文章.WebP原理和Android支持现状介绍webp 图片格式兼容到Android4.0,之前转换webp的时候都是通过在线转换器,不过效率是在是太慢了,单张还好,批量转换就很痛苦了,故本人写了一个python 脚本来实现自动化批量将png 或者 jpg 转换为webp环境搭...转载 2018-04-08 13:50:23 · 1246 阅读 · 0 评论 -
内存管理算法--Buddy伙伴算法
Buddy算法的优缺点:1)尽管伙伴内存算法在内存碎片问题上已经做的相当出色,但是该算法中,一个很小的块往往会阻碍一个大块的合并,一个系统中,对内存块的分配,大小是随机的,一片内存中仅一个小的内存块没有释放,旁边两个大的就不能合并。2)算法中有一定的浪费现象,伙伴算法是按2的幂次方大小进行分配内存块,当然这样做是有原因的,即为了避免把大的内存块拆的太碎,更重要的是使分配和释放过程迅速。但是他也带来...转载 2018-04-02 19:56:03 · 279 阅读 · 0 评论 -
【Linux 内核】内存管理(二)伙伴算法
通常情况下,一个高级操作系统必须要给进程提供基本的、能够在任意时刻申请和释放任意大小内存的功能,就像malloc 函数那样,然而,实现malloc 函数并不简单,由于进程申请内存的大小是任意的,如果操作系统对malloc 函数的实现方法不对,将直接导致一个不可避免的问题,那就是内存碎片。内存碎片就是内存被分割成很小很小的一些块,这些块虽然是空闲的,但是却小到无法使用。随着申请和释放次数的增加,内存...转载 2018-04-02 20:20:55 · 243 阅读 · 0 评论 -
内存碎片及伙伴算法
今天学习到 Linux 内存分配问题,有些不明白,什么是内存碎片问题?以及为什么maloc()等函数每次分配内存后都会用 free()释放资源,为什么还会产生碎片问题?内存碎片问题如何产生 及 如何解决呢?以下是自己今天学习心得:内存碎片概念:内存碎片问题分为内部碎片和外部碎片两种。 1.内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时,就将该进程分配后剩余的...转载 2018-04-02 20:24:40 · 636 阅读 · 0 评论 -
内存碎片产生原因及终极解决办法
内存碎片通常分为内部碎片和外部碎片: 1. 内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免; 2. 外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。 现在普遍采用的段页式内存分配方式就是将进程的内存区域分为不同的段,然后将每一段由多个固定大小的页组成。...转载 2018-04-03 13:56:58 · 3692 阅读 · 0 评论 -
C语言内存管理:malloc、calloc、free的实现
任何一个对C稍稍有了解的人都知道malloc、calloc、free。前面两个是用户态在堆上分配一段连续(虚拟地址)的内存空间,然后可以通过free释放,但是,同时也会有很多人对其背后的实现机制不了解。 这篇文章则是通过介绍这三个函数,并简单的予以实现,对比现有C的标准库实现(glibc等)相比,并不是特别高效,我们重在阐述背后的基本原理。一、C程序的存储空间布局图1 text:整个用户空间的最低...转载 2018-04-03 19:38:12 · 345 阅读 · 0 评论