随笔分类 - 数据结构
摘要:将相应位置上冲突的所有关键词存放在同一链表中 超级错误!!!!!!!!newcell=(Position)malloc(sizeof(Position));//申请空间 正确 newcell=(Position)malloc(sizeof(struct LNode));//申请空间
阅读全文
摘要:编译处理时,涉及变量及属性的管理 :插入(新变量的定义),查找(变量的引用)。 顺序查找 O(N) 二分查找 O(logN) 二叉树查找O(H) 平衡二叉树 O(logN) 如何快速查找? 查找的本质:已知对象找位置 有序的安排对象-》 全序:顺序查找 半序:二叉树 直接算出位置-》 散列查找 散列
阅读全文
摘要:算法思想: 主位优先 排序好后直接导出 2,130,22,10,1230,4565,64,340,2430,1340 D=4。 桶0:2,130,22,10,64,340, || 桶1:1230,1340 || 桶4:4565 D=3 桶0:2,22,10,64 桶1:130 桶3:340 || 桶
阅读全文
摘要:算法描述 多关键字排序: 又比如123,主位是1,次卫是3。 123,46,791。 按照次位优先 次位:791,123,46 次次位:123,46,791 次次次位:46,123,791 具体实现 建立桶元素结点,用链表实现。 建立桶头尾结点结构体。 构造GetDigit ( int X, int
阅读全文
摘要:算法描述 分而治之 过程1:以65为主元,将小于65的为一组放在65左边。大于65的为一组放在65右边。 排序后: {左边} 主元(65) {右边} 递归的进行。在左边这一组选一个主元,重复上过程1。右边这一组选一个主,重复过程1。 直到左边右边都只有一个元素。 对于小规模数据,用递归并不划算,小规
阅读全文
摘要:算法思想: 先假设length=1; 表示先将相邻的2个元素进行排序。A[0]与A[1],A[2]与A[3].............A[N-2]与A[N-1](N为偶数 假设) 然后length=2;A[0]A[1]是有序序列,与A[2]A[3] 进行2个有序序列的归并。 依次类推。 错误分析:
阅读全文
摘要:void Merge(ElementType A[],ElementType Temp[],int Left,int Right,int RightEnd) { int temp,i, LeftEnd,count; LeftEnd=Right-1;// 超级错误 count=RightEnd-Lef
阅读全文
摘要:1.辗转相除法 辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。例如,求gcd(319,377):∵ 377÷319=1(余58)∴gcd(377,319)=gcd(319,58);∵ 319÷58=5(余29),∴ gcd(319,58)=gcd(58,29);∵ 58÷29=2
阅读全文