
算法/数据结构
文章平均质量分 69
cjc雪狼
想飞的菜鸟
展开
-
判断单链表中环的长度等问题
给定一个单链表,只给出头指针h:1、判断是否存在环选定两个指针p1,p2,初始时p1=p2=h,循环执行以下操作p1=p1+1,p2=p2+2,判断p1==p2,若p1==p2,记交点为p,则存在环,否则不存在。(追赶问题)2、求取环的长度从p开始执行以下操作p1=p1+1,p2=p2+2,再次相交时,执行的操作数,即为环的长度。(追赶问题)3、找出环的连接点p点到交点的距原创 2014-03-31 21:08:09 · 1712 阅读 · 0 评论 -
链表的k子段逆转
链表的k子段逆转原创 2014-09-05 10:33:48 · 978 阅读 · 0 评论 -
掷骰子问题
掷骰子问题原创 2014-09-04 15:54:10 · 1909 阅读 · 0 评论 -
拓扑排序(AOV)---判断图中是否有环---《数据结构》严蔚敏
拓扑排序(AOV)---判断图中是否有环---《数据结构》严蔚敏原创 2014-08-03 21:27:04 · 1371 阅读 · 0 评论 -
hanoi塔问题
hanoi塔问题原创 2014-08-03 10:45:07 · 973 阅读 · 0 评论 -
《数据结构》--严蔚敏 静态链表排序 p270
《数据结构》--严蔚敏 静态链表排序原创 2014-07-30 09:24:29 · 1326 阅读 · 0 评论 -
数制转换
数制转换原创 2014-07-30 10:06:55 · 1002 阅读 · 0 评论 -
求集合的幂
求集合的幂原创 2014-07-30 09:56:44 · 814 阅读 · 0 评论 -
迷宫问题
迷宫路径问题原创 2014-07-30 11:40:32 · 805 阅读 · 0 评论 -
最短路径---Dijkstra迪杰特斯拉算法---《数据结构》严蔚敏
最短路径---Dijkstra迪杰特斯拉算法---《数据结构》严蔚敏原创 2014-08-04 15:27:04 · 4646 阅读 · 0 评论 -
Floyd(弗洛伊德算法)---每对顶点的最短路径---《数据结构》严蔚敏
Floyd(弗洛伊德算法)---每对顶点的最短路径---《数据结构》严蔚敏原创 2014-08-04 16:21:10 · 1774 阅读 · 0 评论 -
关键路径(AOE)---《数据结构》严蔚敏
关键路径,AOE,《数据结构》严蔚敏原创 2014-08-04 11:47:18 · 2290 阅读 · 3 评论 -
AVL的构建(插入操作)---《数据结构》严蔚敏
AVL的构建(插入操作)---《数据结构》严蔚敏原创 2014-08-03 19:35:28 · 962 阅读 · 0 评论 -
基数排序---Java实现+C++实现
java和C++实现的基数排序原创 2014-04-22 19:46:50 · 1459 阅读 · 2 评论 -
《编程之美》4.10数字哑谜和回文
《编程之美》4.10数字哑谜和回文原创 2014-09-08 16:57:08 · 1617 阅读 · 0 评论 -
相对路径生成绝对路径
相对路径生成绝对路径原创 2014-09-09 10:08:27 · 1123 阅读 · 0 评论 -
Delauny三角剖分算法解析及源码
delauny三角剖分算法解析及源码原创 2014-11-04 09:30:06 · 4088 阅读 · 0 评论 -
把二元查找树转变成排序的双向链表
二叉树转双向链表原创 2014-03-10 10:52:50 · 654 阅读 · 0 评论 -
字符串全排列
字符串全排列原创 2014-09-03 09:29:20 · 913 阅读 · 0 评论 -
顺时针打印旋转打印矩阵
顺时针打印旋转打印矩阵原创 2014-09-02 20:24:25 · 899 阅读 · 0 评论 -
二叉树路径和
二叉树路径求和并打印路径原创 2014-09-02 21:57:03 · 926 阅读 · 0 评论 -
打印n长度为n的所有数字
这里需要注意数字范围的问题,如果是n位数字可能超过C语言中数字的表示范围,所以采用n位数字的全排列方式进行解决原创 2014-09-02 18:07:46 · 901 阅读 · 0 评论 -
2015年校招--华为上机笔试题--大数相乘
2015年--华为校招机试题--大数相乘原创 2014-09-13 21:55:55 · 2229 阅读 · 0 评论 -
2015年校招--华为上机笔试题--去重复单词
2015年校招--华为上机笔试题--去重复单词原创 2014-09-13 22:01:18 · 2288 阅读 · 0 评论 -
kmp算法--求字符串子串--《数据结构》严蔚敏
kmp算法--求字符串子串--《数据结构》严蔚敏原创 2014-08-03 12:11:13 · 1995 阅读 · 0 评论 -
表达式求值
表达式求值原创 2014-08-03 10:25:39 · 2027 阅读 · 0 评论 -
整数数组排序--各个元素拼接所得结果最小
整数数组排序--各个元素拼接所得结果最小原创 2014-09-09 15:48:58 · 1013 阅读 · 0 评论 -
huffuman编码
huffuman编码原创 2014-08-25 08:47:15 · 1327 阅读 · 0 评论 -
排序算法总结---代码+性能
排序算法总结---代码+性能原创 2014-07-27 20:02:35 · 772 阅读 · 0 评论 -
《程序员面试宝典》螺旋队列坐标输出
《程序员面试宝典》螺旋队列坐标输出原创 2014-05-13 21:30:02 · 1302 阅读 · 0 评论 -
《程序员面试宝典》打印规律矩阵
《程序员面试宝典》打印规律矩阵原创 2014-05-13 22:01:01 · 1060 阅读 · 0 评论 -
递归程序与全排列问题
参考自http://blog.chinaunix.net/uid-20196318-id-31175.html递归的基本原理及特性:1. 每一次函数调用都会有一次返回.当程序流执行到某一级递归的结尾处时,它会转移到前一级递归继续执行。2. 递归函数中,位于递归调用前的语句和各级被调函数具有相同的顺序.如打印语句位于递归调用语句前,它按照递归调用的顺序 被执行。转载 2014-03-18 11:52:11 · 954 阅读 · 0 评论 -
快速排序法
1、综述快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,快速排序的核心思想是---分治法。快速排序是对冒泡排序的一种改进,最坏的时间复杂度是O(n^2)。2、基本思想(1)先从数列中取出一个数作为基准数。(2)分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。(3)再对左右区间重复第二步,直到各区间只有一个数。虽原创 2014-03-13 22:01:23 · 732 阅读 · 0 评论 -
冒泡排序
平均时间复杂度O(n^2),最坏时间复杂度是O(n^2),稳定的排序方法。/* 冒泡排序*/#include #include #define A 10int s[A]={1,23,4,45,6,87,9,38,27,5}; void bubblesort(int s[],int n){ int i,j; int temp; for(i=0;i<n;i++)原创 2014-03-20 13:58:53 · 539 阅读 · 0 评论 -
堆排序
原理详见:海子博客虽然也学过数据结构,时间长了就有些忘了,本以为堆排序还要构建二叉树,但是实际上不是这样的。数据结构仅仅是为了数据处理方便而设计的,你也可以把一个静态链表看成其它可能的结构。下面是堆排序的code。堆排序是一种不稳定的排序方法,其平均时间复杂度为O(N*logN),最坏时间复杂度为O(N*logN)/* heap sort algorithm*/#includ原创 2014-03-16 20:43:51 · 491 阅读 · 0 评论 -
归并排序
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。值得注意的是归并排序是一种稳定的排序方法。 将已有序的子序列合并,得到完全有序的序列;原创 2014-03-19 17:25:27 · 773 阅读 · 0 评论 -
《编程之美》---精确表达浮点数子问题---辗转相除法求取最大公约数
辗转相除法当两个数都较大时,采用辗转相除法比较方便.其方法是:以小数除大数,如果能整除,那么小数就是所求的最大公约数。否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数。依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数。例如:求4453和5767的最大公约数时,可作如下除法.5767÷4453=1余13144453÷1314=3余5111314原创 2014-03-17 15:14:22 · 1212 阅读 · 0 评论 -
交换排序法
基本思想:比较第 i 记录和第 j 个(j=i+1....n-1)记录,若不满足预设大小关系则交换时间复杂度O(n^2),是一种稳定的排序方法/* exchange sort*/#include #include #define A 10int s[10]={10,32,63,8,100,-10,63,49,76,17};void exchange_sort(int s原创 2014-03-16 21:32:30 · 607 阅读 · 0 评论 -
编程之美---寻找最大的K个数
问题详见《编程之美》其基本思想是在达到目的的前提下,尽量地减少排序、选择的工作量解法二code/* 在一组数中寻找k个较大的数*/#include #include #define A 10int s[A]={10,2,34,4,5,-1,36,73,8,92};int k=4;void swap(int s[],int l,int m) //交换数据确立边界原创 2014-03-17 10:32:36 · 626 阅读 · 0 评论 -
二叉树叶子节点遍历---递归与非递归方法求取树深度
#include #include #define A 18//二叉树前序遍历序列,深度5,叶子节点int buffer[20]={10,6,4,-1,-1,8,-1,-1,14,12,3,-1,4,-1,-1,-1,16,-1,-1,-100};//二叉树结构体typedef struct binary_tree_node{ int data; struct binar原创 2014-03-09 21:56:32 · 3605 阅读 · 0 评论