
数据结构 算法 c
文章平均质量分 65
ymjystu
这个作者很懒,什么都没留下…
展开
-
int、long、long long取值范围
unsigned int 0~4294967295 int 2147483648~2147483647 unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigne原创 2017-03-15 15:38:18 · 584 阅读 · 0 评论 -
最长公共子序列问题(LCS)
和B的最长公共子序列的长度是4。原创 2017-03-24 16:38:50 · 776 阅读 · 0 评论 -
后缀数组求最大重复子串
#include #include #include #define MAXCHAR 5000 //最长处理5000个字符 char c[MAXCHAR], *a[MAXCHAR]; // int comlen( char *p, char *q ) { int i = 0; while( *p && (*p++ == *q++) )原创 2017-03-24 10:09:12 · 372 阅读 · 0 评论 -
编程之美-----1的个数
1的个数原创 2017-03-08 15:45:24 · 357 阅读 · 0 评论 -
线性表的学习总结
1.线性表的定义; 线性表是具有相同特性的数据元素的一个有限序列。2.线性表的顺序存储结构-----------顺序表 线性表的顺序存储结构是,把线性表的所有元素按照其逻辑顺序依次存储到从计算机存储器中指定存储位置开始的一段连续的存储空间中。 在定义一个线性表的顺序存储类型可描述如下: typedef struct { ElemType data[Ma原创 2016-09-06 16:35:45 · 643 阅读 · 0 评论 -
排序算法总结(三)
计数排序:原理先把每个元素的出现次数算出来,然后算出该元素所在最终排好序列中的绝对位置(最终位置),再依次把初始序列中的元素,根据该元素所在最终的绝对位置移到排序数组中。性能时间复杂度为O(N+K),空间复杂度为O(N+K),算法是稳定的,与初始序列无关,不需要进行比较就能排好序的算法。使用场景算法只能使用在已知序列中的元素在0-k之间,且要求排原创 2016-05-16 10:23:45 · 485 阅读 · 0 评论 -
排序算法分析(二)
直接选择排序:原理:每次从未排序的序列中找到最小值,记录并最后存放到已排序序列的结尾性能:时间复杂度为O(N^2)空间复杂度为O(1),排序是不稳定的(把最小值交换到已排序的结尾导致的),每次都能确定一个元素所在的最终位置,比较次数与初始序列无关。 void select_sort(int value[], int length) { int i,j;原创 2016-05-16 08:13:27 · 2643 阅读 · 0 评论 -
排序算法总结(一)
冒泡排序:原理: 两两比较相邻记录的排序码,若发生逆序,则交换;有两种方式进行冒泡,一种是先把小的冒泡到前边去,另一种是把大的元素冒泡到后边。优化: 若初始序列就是排序好的,对于冒泡排序任然是还要比较O(N^2)次,但无交换次数。例如有一个无序数列(2,1,3,4,5,6,7,8,9,10)从第一次循环交换后的操作,可以说都是没必要的。所以,这些操作就是我们需要优转载 2016-05-12 16:20:40 · 401 阅读 · 0 评论 -
红黑树
法之路——红黑树 这儿主要给出红黑树的代码实现,和我的一些理解。具体的红黑树介绍在算法导论的163页,也可以自己google或百度。 红黑树简介: 红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: 性质1. 节点是红色或黑色。 性质2. 根节转载 2016-05-10 21:09:11 · 522 阅读 · 0 评论 -
多少对质数的和等于输入的这个正整数
素数,又称为质数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(只有1和本身两个因数的数),维基百科:素数的定义点击打开链接算法过程:决定一个数m是否是素数,只要让m被2到 根m 或者(m-1)除,如果不能被2到 根m 或者(m-1)中的任何一个数整除,则就定m为素数例1:判断m是否是素数#include #include void ma原创 2017-03-26 14:37:07 · 1477 阅读 · 0 评论