posted @ 2022-03-16 17:32
吕辉
阅读(383)
推荐(0)
摘要:
将中序遍历的空间复杂度降为O(1)
阅读全文
posted @ 2022-03-03 16:29
吕辉
阅读(113)
推荐(0)
posted @ 2022-02-17 04:06
吕辉
阅读(85)
推荐(0)
摘要:
一、性能分析: 若有n条记录,记录最多含有a个关键字,每个关键字的基数取值范围为b个值,则: 1.平均时间复杂度 = O(a(n + b)) 2.空间复杂度:O(ab) 二、实现: 1 #define INDEX 10 //关键字基数,此时是十进制整数的基数 2 #define KEYNUM 2 /
阅读全文
posted @ 2022-02-13 03:22
吕辉
阅读(305)
推荐(0)
摘要:
1.时间复杂度:O(nlog2n) 2.空间复杂度:O(n) 3.实现: 1 void MergeSort(int* a, int n) { 2 int* b = (int*)calloc(n + 1, sizeof(int));//创建a的备份b 3 MSort(a, b, 1, n); 4 fr
阅读全文
posted @ 2022-02-12 03:29
吕辉
阅读(106)
推荐(0)
摘要:
一、简单选择排序(Simple Selection Sort) 1.时间复杂度:O(n2) 2.空间复杂度:O(1) 3.实现: 1 void SelectSort(int* a, int n) { 2 int i, j, min; 3 for (i = 1; i < n; i++) { 4 for
阅读全文
posted @ 2022-02-11 22:33
吕辉
阅读(92)
推荐(0)
摘要:
一、冒泡排序(Bubble Sort) 1.时间复杂度:O(n2) 2.空间复杂度:O(1) 1 void BubbleSort(int* a, int num) { 2 int i, j; 3 for (i = 1; i <= num - 1; ++i) { 4 for (j = 1; j <=
阅读全文
posted @ 2022-02-11 00:58
吕辉
阅读(107)
推荐(0)
摘要:
一、直接插入排序(Straight Insertion Sort) 1.时间复杂度:O(n2) 2.空间复杂度:O(1) 3.实现: 1 void InsertSort(int* a, int num) { 2 int i, j; 3 for (i = 2; i < num; i++) { 4 if
阅读全文
posted @ 2022-02-10 20:32
吕辉
阅读(71)
推荐(0)
摘要:
1.和次优查找树相对,二叉排序树是一种动态树表。 2.二叉排序树的结构通常不是一次生成的,而是在查找过程中,当树中不存在关键字等于给定值的结点时再进行插入。 3.含有n条记录的二叉查找树平均查找长度: 4.实现: 二叉排序树的查找 1 int SearchBST(BTree T, BTree* P,
阅读全文
posted @ 2022-02-07 14:31
吕辉
阅读(142)
推荐(0)
摘要:
一、顺序查找 1.若有等概率的n条记录,则查找成功时的平均查找长度: ASL = ( n + 1 ) / 2; 2.设置监视哨(把查找表下标为0的位置设置为待查找的关键字),目的在于免去每一步都要检测整个表是否查找完毕。 3.实现: 1 int SequentialSearch(SSTable T,
阅读全文
posted @ 2022-02-06 13:48
吕辉
阅读(174)
推荐(0)