问题
给定一系列线段,每条线段可以是水平或者竖直。求相交的线段
解决
算法的基本思想是先将线段以x坐标进行排序。做一条扫描线,从左往右扫描,也就是下图中的红线。
当进入一条水平的线时,记录该线段的y坐标。
当走出水平线时,从二叉查找树中删除该线段的y坐标。
...
分类:
其他好文 时间:
2014-06-19 12:56:29
阅读次数:
305
引言之前我们写过OR的裸机程序,写过基于OR的linux设备驱动程序,也反汇编过OR的机器码。本小节,我们将通过一个简单的实验,对OR的汇编(指令集)做一个简单的梳理和測试。1,基本思想要想了解OR的指令集,事实上仅仅要查查OpenRISC architecture manual就能够了,可是不是最...
分类:
其他好文 时间:
2014-06-19 07:56:50
阅读次数:
330
红黑树就是将二三树表示成二叉树的形式,极大地简化了算法。
红黑树的基本思想就是将二三树中的三节点表示成两个二节点,而这两个二节点之间使用红色的连接,普通连接使用黑色的连接。
红黑树中的每个节点都有以下性质:
没有一个节点同时拥有两个红连接
每个空节点到根节点路径上黑色连接的数量都是相同的
红连接只会出现在左边
下图展示...
分类:
其他好文 时间:
2014-06-16 11:53:53
阅读次数:
164
快速排序:
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
快速排序进一步挖掘就是挖坑和分治,这种方法比较实用简单:
对挖坑填数进行总结
1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。
2.j--由后向前找比它小的数,找到...
分类:
编程语言 时间:
2014-06-15 18:54:10
阅读次数:
324
基本知识点: 1、软件工程的基本思想:就是用工程学的方法进行软件的开发与维护,并对软件生产过程进行工程化的管理。 2、软件生命周期:需求分析、设计、编码、测试、维护。 3、软件工程的主要内容:工程方法、技术细则、文档规范、技术支持、管理制度、人员组织以及质量保证体系。 4、实行软件工程的主要意义:提...
分类:
其他好文 时间:
2014-06-14 20:37:30
阅读次数:
836
独立链表是解决哈希冲突的一种办法。它的基本思想就是将哈希值相互冲突的几个对象放到一个链表中。
代码
public class HashST {
private static class Node {
Object key; // 由于无法创建泛型数组,只能将对象设置为Object类
Object value;
Node n...
分类:
其他好文 时间:
2014-06-14 10:04:26
阅读次数:
206
GCD是基于C语言的底层API,用Block定义任务用起来非常灵活便捷.GCD的基本思想是就将操作放在队列中去执行
(1)操作使用Blocks定义 (2)队列负责调度任务执行所在的线程以及具体的执行时间
(3)队列的特点是先进先出(FIFO)的,新添加至对列的操作都会排在队尾关于多线程的一些概念:G...
分类:
其他好文 时间:
2014-06-13 13:09:40
阅读次数:
309
GCD是基于C语言的底层API,用Block定义任务用起来非常灵活便捷.
GCD的基本思想是就将操作放在队列中去执行 (1)操作使用Blocks定义 (2)队列负责调度任务执行所在的线程以及具体的执行时间
(3)队列的特点是先进先出(FIFO)的,新添加至对列的操作都会排在队尾关于多线程的一些概念:...
分类:
其他好文 时间:
2014-06-13 13:06:33
阅读次数:
279
问题
模拟N个运动的小球,小球之间可以发生弹性碰撞
建模
硬碟模型
N个运动的质点,它们之间能发生弹性碰撞,也可以和墙壁发生弹性碰撞
每个质点有明确的位置、速度、质量、半径
没有其他外力
模型应用范围
麦克斯韦:物体的温度和微粒速度分布的关系
爱因斯坦:解释花粉的布朗运动
基本思想
...
分类:
其他好文 时间:
2014-06-10 07:39:34
阅读次数:
266
堆排的灵感源自于堆的数据结构。它是一种原地排序算法,不需要额外的临时数组。
基本思想
堆排的基本思想是:
先建立一个最大堆
将最大的元素移动到数组末尾,减小堆的大小,调整最大堆使其符合最大堆的性质
重复第二步,直到最大堆耗尽为止
第一个步骤建立最大堆的代码非常简单,只要对每个节点执行sink操作即可。
...
分类:
其他好文 时间:
2014-06-10 06:55:08
阅读次数:
295