上一页 1 ··· 6 7 8 9 10 11 12 13 下一页
摘要: 上一节介绍了简单选择排序,这一节将介绍直接插入排序(Straight Insertion Sort)。 会玩扑克牌的同志应该很容易理解插入排序,通常整理扑克牌的方法就是一张一张的来,将每一张扑克牌插入到其他已经有序的扑克牌中的适当位置。在计算机实现中,为了给要插入的元素腾出空间,我们需要将其余所有元 阅读全文
posted @ 2017-03-13 19:44 veli 阅读(383) 评论(0) 推荐(0)
摘要: 这一节将介绍简单选择排序(Simple Selection Sort)。 在介绍简单排序算法之前,先给出排序的确切定义,并简单介绍一下排序算法的稳定性。 排序的确切定义 假设含有n个对象的序列为{R[0], R[1], ..., R[n-1]}, 其对应的关键字(key)序列为{K[0], K[1] 阅读全文
posted @ 2017-03-12 21:47 veli 阅读(778) 评论(0) 推荐(0)
摘要: 1. 什么是算法(Algorithm)? 顾名思义,算法就是计算的办法或者法则。这里的计算是广义的可以做任何事情的计算,而办法和法则意味着使用它就可以解决需要的问题。 通常人们将算法定义为一个有穷的指令集,这些指令为解决某一个特定任务规定了一个运算序列。一个算法应当具有下面的5个特性: 事实上,算法 阅读全文
posted @ 2017-03-10 18:16 veli 阅读(637) 评论(0) 推荐(0)
摘要: 排序算法有很多,但常见的也就9种。下面首先给出本人用LibreOffce画的两张表,做一个最简单直接的总结,然后再逐一展开讨论。 (注:下面的表2可谓面试必备,强烈推荐牢记于心。) o 表1 - 常见排序算法时间复杂度和空间复杂度对比 o 表2 - 常见排序算法简表 1. 排序算法究竟有好多? A: 阅读全文
posted @ 2017-03-10 10:51 veli 阅读(627) 评论(0) 推荐(0)
摘要: 绝大多数的工程师很可能很少关注代码之外的能力,摸爬滚打了将近10年后,我才领悟到除了技术之外还有一项最重要的修炼,那就是"领导与被领导"学(其中包含了换位思考,但不局限于换位思考)。 下面列出的向上管理(manage up)的五条原则,对实践"被领导"学大有裨益。 将上面五条原则牢记于心自然是不够的 阅读全文
posted @ 2017-03-09 20:12 veli 阅读(7597) 评论(0) 推荐(0)
摘要: 1. 什么是野指针(wild pointer)? 野指针(wild pointer)就是没有被初始化过的指针。例如, o foo1.c 如果用"gcc -Wall"编译, 会出现如下警告: 2. 什么是悬空指针(dangling pointer)? 悬空指针是指针最初指向的内存已经被释放了的一种指针 阅读全文
posted @ 2017-02-28 10:39 veli 阅读(25372) 评论(2) 推荐(8)
摘要: 树在数据结构中占有非常重要的地位。本文从树的基本概念入手,给出完美(Perfect)二叉树,完全(Complete)二叉树和完满(Full)二叉树的区别。如果学习过二叉树,但是对这三种二叉树并没有深入的理解,或者完全被国产数据结构教科书所误导(只听说过满二叉树和完全二叉树)的朋友不妨花点时间耐着性子 阅读全文
posted @ 2017-02-25 13:56 veli 阅读(88248) 评论(6) 推荐(51)
摘要: 熟悉传统网络协议栈但对InfiniBand协议栈好奇的朋友可以通过下图有一个宏观上的印象。 IB实现了"高带宽,低延时"的网络互联,最大的魅力就是支持RDMA,而RDMA就其本质,不过就是kernel by pass。 "CPU大大实在是太忙啦,咋整? 用专用的硬件来帮忙!" 当初的DMA就是基于这 阅读全文
posted @ 2017-02-23 20:11 veli 阅读(930) 评论(0) 推荐(0)
摘要: 本文首先对文章Intel and AT&T Syntax做一个中英文对照翻译,然后给出一个简单的例子,再用gdb反汇编后,对INTEL与AT&T的汇编语法进行对照从而加深理解。 1. Prefixs. 前缀 Example: 2. Direction of Operands. 运算方向 Exampl 阅读全文
posted @ 2017-02-22 21:53 veli 阅读(2280) 评论(0) 推荐(2)
摘要: 在Unix/Linux内核代码以及GNU libc源代码中,有两个C的宏被广泛使用。 例如: 在gdb中用命令macro定义并展开看看, 由此可见, #是将单个宏参数转换成一个字符串 ##则是将两个宏参数连接在一起 可以简记为“单#字符串,双#连接参”。 另外,也可以用"gcc -E"查看宏展开。例 阅读全文
posted @ 2017-02-21 11:20 veli 阅读(871) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 下一页