随笔分类 - Algorithms
摘要:假设我们对如下Block中的红色线段做了标注,那么这个标注的两个锚点(Anchor Point)分别为红色线段的2个端点 当我们旋转这个Block后,我们自然希望这个标注也跟着物体旋转的,调整到如下...
阅读全文
摘要:首先,托管代码由GC自动回收,不代表托管应用程序就没有内存泄露问题 其次, 程序不总是精确知道哪些托管对象是垃圾,这就代表着没有一款工具,一运行就能给你一个报表,说某某对象没回收,某某地方发生了内存泄...
阅读全文
摘要:两条非平行线段, 如何合理的标注角度。比方说对于下面2条初始线段: 根据当前鼠标所在位置的不同,我们可能得到如下不同的标注方式: 本人求标注的思路大体思路是:首先求出圆弧(Dimension Line)的两个端点, 然后根据这两个已求得的端点,分别计算出两条引线(Witness Line)的端点。 求圆弧端点的算法: 我们把问题简化下,对于任意2条相交的射线,以下均以锐角为例(钝角求解过程完全一...
阅读全文
摘要:归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。
时间复杂度为O(nlgn)
空间复杂度为O(n)
是一种稳定算法
阅读全文
摘要:常见的插入排序方法有两种:直接插入排序和希尔排序
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
利用的是循环不变式,类似于数学归纳法。
直接插入排序的时间复杂度为O(n2)
阅读全文