
C语言
普通人_Snow
平凡的普通人。
展开
-
给定一个无序单链表头节点head,实现单链表的选择排序,要求:额外空间复杂度为O(1)
如题,在QQ群上有人提出这个如何解决,对空间复杂度概念不是特别熟悉,网搜了下,简单理解为尽可能不适用递归吧,虽然欠妥,但暂时先这样吧,给定的是头节点head,当时因为没看清楚,直接用了头指针,问题不大,自己练练手,故撸代码如下,程序较为简陋,没有检查错误等代码,望轻喷- -/** * SelectSort the LinkList according to the原创 2015-11-08 23:21:33 · 1476 阅读 · 0 评论 -
平衡二叉树(AVL树) ----- C语言
前面说到了二叉搜索树,它在动态查找表中有较高的性能,既能保证在无序数据中查找的高效率,又相对于数组具有方便的增添删除功能,其平均查找复杂度为所构造的二叉树的树高,即O(logn)( 图1 ),但是,对于极端情况,例如该二叉树是一颗左斜树或者右斜树 (图2) 。此时,显然可以看到,最坏查找时间复杂度为O(n),这就意味着我们的二叉搜索树变成了顺序查找,效率极为低下,所以我们需要一种平衡二原创 2015-12-18 22:38:47 · 3221 阅读 · 4 评论 -
快速排序(已优化) ----- C语言
拿快速排序练练手,基本思想就是选取一较为中间大小的值,分别从两边循环跟此值对比,若小于其,则换至该值前面,若大于其,则换至该值后面,直到low = high 为止,则说明排序结束。 以简单的int数组为待排序序列:#define MINIMUMSIZE 7#define A_LENGTH 10#include //元素交换函数int Swap(int *a, int i,原创 2015-11-21 19:13:21 · 1293 阅读 · 0 评论 -
二叉搜索树(BST) ----- C语言
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序原创 2015-12-11 16:41:45 · 722 阅读 · 0 评论 -
征服C指针读书笔记 1 ----- 指针基本概念
1、先有“指针类型”,才有了“指针类型的变量”和“指针类型的值”。2、变量不一定按照声明顺序保存在内存中。3、对变量使用&运算符,可以取得该变量的地址,此地址称为指向该变量的指针。4、指针变量hoge_p保存了指向其它变量的地址的情况下,可以说“hoge_p指向hoge”。5、对指针变量运用*运算符,就等同于它指向的变量。如果hoge_p指向hoge,*hoge_p就等同于hoge原创 2015-10-17 22:57:31 · 471 阅读 · 0 评论 -
堆排序 ----- C语言
堆排序主要思想实现代码 -------------------//HeapSort -- 堆排序 O(nlogn)int HeapSort(int *a){ int i; //初始化从中间位置开始构造大顶堆 for (i = A_LENGTH/2 - 1; i >= 0; i--) { HeapAdjust(a, i, A_LENGTH-1); } //原创 2015-11-29 17:00:49 · 490 阅读 · 0 评论 -
归并排序(非递归) ----- C语言
最近搞了很久才基本弄清楚非递归的归并排序的基本思想,查阅许久才看懂代码,自己简单地实现了一下:#define A_LENGTH 10#include #include int MergeSort(int *a){ int k = 1;/*k用来表示每次k个元素归并*/ int *temp = (int *)malloc(sizeof(int) * A_LENGTH);原创 2015-11-20 22:38:20 · 2129 阅读 · 5 评论 -
串的KMP模式匹配算法(优化) ----- C语言
#include #include int GetNext(char *T, int *next){ int i = 0, j = -1; next[i] = j; while (i < strlen(T)) { if (j == -1 || T[i] == T[j]) { i++; j++; if (T[i] != T[j]) {原创 2015-11-10 22:34:49 · 521 阅读 · 0 评论 -
常用排序算法总结(简单数组实现,其他类似)----- C语言
闲来无事,写了写之前学的排序算法,能力有限,也就写成这样吧= =/*** 各类排序算法复习(简单数组实现,其他类似)* Sort Type Review* 2015.11.09* By Snow Yong**/#define MINIMUMSIZE 7#define A_LENGTH 10#include int Swap(int *a, int i, in原创 2015-11-09 17:51:20 · 746 阅读 · 0 评论