12 2021 档案
摘要:桶排序 如果数据操作的基础是只能比较大小,那么有数学家证明了最小复杂度是O(NlgN); 但是,很多数据集合并不一定依赖两两比较,而依赖和基数的比较. 比如10000个学生考试,分数只分0,1,2,3,4,5;那么拿两个学生比较就不如 直接拿1个学生和分数比较了. 这样,准备好6个分数桶,分别把学生
阅读全文
摘要:整体功能 完成对管线的碰撞检测,并自动进行翻弯儿 Detector 用射线法去查找碰撞点. 核心方法: Obstructions(射线) 通过传入原点和方向向量,找到文档中所有与之相交的带上下文的参照(referencewithcontext),.并且按照由近到远排序. Obstructions(线
阅读全文
摘要:1.基础的知识储配 c#语言基础,winform,revit后台数据关系, 面向对象的设计模式(单例,工厂) 基本数据结构与算法: c#中的集合类,排序算法,二叉树,树的遍历. 几何运算:点积,叉积,变换矩阵. 2.工具 addinManager 使用sample revit lookup 看rev
阅读全文
摘要:快速排序的思想是"分而治之" 如果一个数列所有的元素都小于另一个数列的任意元素,那么如果将两个数列排列好,就非常容易合并. 最重要的就是找一个基准(pivot),将数列分裂成比它大的部分,和比它小的部分. 这个pivot数值最好是中间,每次递归,都能化为两个规模类似的问题. 这里采用中值法,第一个,
阅读全文
摘要:归并排序的策略是建立在对两个有序数列合并的基础上的: 先看看怎样对两个有序的数列合并:(left~center有序,center+1~rightEnd有序) 主要采用双游标法: private static void MergeSorted(int[] nums,int left,int cente
阅读全文
摘要:整体思路:利用堆的数据结构,每次都从中取出根节点,完成整体排序. 1堆的数据结构: 特点是,根是一棵完全二叉树,上边根节点的值要大于其左右子树所有节点, 其最重要的特征是:从根到叶的任一条路径都满足单调性,如果一颗完全二叉树满足这个特性, 那它也是一个堆.也正是依照这个特性,可将一颗形式上的完全二叉
阅读全文
摘要:插入排序: 假设待排序集合是桌上的牌,每次抽一张, 手里的牌是有序的,将抽到的牌,插入手中合适的位置, 保证手中的牌一直是有序的.. 具体的是两层循环: 外层循环每次抽一张牌 内层循环是将抽到的牌,从后往前与手中的牌(已排序部分)比较,如果手中的牌大, 则将已经手中的牌后移,反之,就将抽到的牌插入它
阅读全文
摘要:冒泡排序: 我一直好奇为什么不叫沉底排序:( 主体思路是做两层操作: 外层操作目标是每次都是把最大的元素调整到最底部. 策略是内层循环:相邻比较,存在逆序则交换,直至完成一个循环就能将最大的沉到最底部. 一个细节:如果某次循环没有找到逆序对,就直接跳出循环.不必非要执行到第一个元素. 稳定,时间复杂
阅读全文

浙公网安备 33010602011771号