算法与数据结构
算法与数据结构
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
干了这一碗BUG
学习让人进步,学习使我快乐
展开
-
数据结构复习——线性表概念
线性表1、线性表的存储结构具有顺序和链式存储前者成为顺序表后者成为链表。2、顺序表特性:支持随机访问、占用连续空间、静态分配、插入和删除操作需要移动多个元素。链表特性:不支持随机访问、动态分配、节点存储空间的利用率比顺序表略低、插入和删除不需要移动多个元素。3、线性表是具有相同特性的有限序列。序列中元素的个数叫做线性表的长度,用n表示,当n为0时表示空表。原创 2012-10-07 00:52:02 · 770 阅读 · 0 评论 -
模式匹配KMP算法实现
KMP模式匹配算法原理大家可以参见任何一本数据结构课本,原理这里就不多少了。实现KMP算法主要就是根据输入的模式串构造出模式串的next数组,这个数组决定了当某一次匹配失败后应该从哪个位置开始进行匹配,因此KMP算法的精髓就是正确算出模式串的next数组。实现代码如下在构造出next数组后就可以实现KMP算法了。这里采用源串acabaabaabcacaabc,模式串abaabcac进行测试原创 2012-08-01 20:46:33 · 820 阅读 · 3 评论 -
【LeetCode】Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).问题分析首先原创 2015-05-18 21:00:08 · 1727 阅读 · 0 评论 -
数据结构复习——绪论
绪 论1、时间复杂度:算法中基本操作执行次数作为时间复杂度的衡量标准。2、O(1)3、数据元素是数据的基本单位。一个数据元素由许多数据项组成。数据项是数据结构中讨论的最小单位,是数据记录中最基本、不可分割的数据单元。4、数据的逻辑一般有两类:线性结构、非线性结构。现行结构具有四个基本特征:(1)集合中必然存在第一个元素和最后一个元素,除了最后一个元素之外任何一个原创 2012-10-07 00:52:20 · 740 阅读 · 0 评论 -
高效计算二进制序列1的个数
记的遇到过一道程序题:判断两个整数二进制形式中1的个数多少。很明显的方法是分别写出这两个数的二进制形式计算每个的二进制个数,进行比较,然而如何高效的计算某个整数的1的个数成为了算法设计的优劣比较。这里采用8位的二进制作为说明。第一种方法我们知道一个整数每次除以2就会减少一个0,因此只需对这个数对二取余数,然后依次除二即可。算法如下:int count(int num){int原创 2012-08-18 20:45:36 · 1210 阅读 · 0 评论 -
【LeetCode】Two Sum
【LeetCode】LeetCodeTwo Sum题目描述问题分析代码总结个人声明题目描述Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the原创 2015-05-18 17:09:30 · 1410 阅读 · 0 评论 -
【LeetCode】Add Two Numbers
题目描述You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers原创 2015-05-18 17:34:44 · 1508 阅读 · 0 评论 -
【LeetCode】Longest Substring Without Repeating Characters
题目描述问题分析代码总结个人声明题目描述Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, whic原创 2015-05-18 17:54:31 · 1551 阅读 · 0 评论 -
整数拆分
题目描述一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 统共有六种不合的拆分体式格式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。 用f(n)默示n的不合拆分的种数,例如f(7)=6.原创 2015-06-27 22:12:29 · 2570 阅读 · 0 评论 -
Perl
杂货铺-你想要的这里都有。www.myarea.topPerl 简介Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。Perl 语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。什么是 Perl?Per...原创 2019-08-22 09:10:10 · 617 阅读 · 0 评论 -
超高速计算n以内素数个数(百亿内3毫秒解决)
判断n以内素数个数有很多算法,最简单的是循环直接判断,这个效率不用说,n稍大就不行了。最流行的是筛选法,原理就是定义一个素数标志位表,初始为1,遇到一个数如果对应标志位为1判断这个数是不是素数,是将该为置1,不是放0,然后将他的倍数位置全部置0,然后继续。。这个效率还是比较快的,但是计算到10^8时候需要3s左右了,对于一般要求基本够了,但是对于ACM里面对时间要求很严还是不够。可以对帅选法进行优原创 2013-03-12 15:47:06 · 7645 阅读 · 11 评论 -
合并两个单链表(顺序与原来相同)
/*A和B是两个带头结点的单链表,其中元素递增有序。将A和B合并成一个单链表C,使得C中元素非递减。*/void Merger(LNode *&A,LNode *&B,LNode *&C){ LNode *p = A->next; LNode *q = B->next; LNode *r; C=A; C->next = NULL; free(B); r=C; while(原创 2013-03-13 16:19:42 · 1134 阅读 · 0 评论 -
数组循环左移P位算法
/*设将n(n>1)个整数存放到一维数组R中。设计一个代码将R中的序列循环左移P(0{X0,X1,……Xn-1}变换为{Xp,Xp+1,……,Xn-1,X0,X1,……,Xp-1}分析:将前P个元素逆置,再将剩下的元素逆置,最后将所有元素逆置*/void Reverse(int R[],int l,int r){ int i,j; int temp; for(i原创 2012-10-07 00:51:48 · 1163 阅读 · 0 评论 -
合并单链表
/*A和B是两个带头结点的单链表,其中元素递增有序。将A和B合并成一个单链表C,使得C中元素非递减。*/void Merger(LNode *&A,LNode *&B,LNode *&C){ LNode *p = A->next; LNode *q = B->next; LNode *r; C=A; C->next = NULL; free(B); r=C; while(原创 2013-01-10 21:19:55 · 656 阅读 · 0 评论 -
顺序表基本操作(插入、删除)
//对于一个顺序表,顺序表元素递增排列,对于一个数据x找到其插入位置,并且插入int LocateElem(Sqlist L,int x){ int i; for(i=1;i<=L.length;i++) { if(x<L.data[i]) { return i; } }}void insert(Sqlist &L,int x){ int p,i; p=Lo原创 2013-01-10 21:21:16 · 1403 阅读 · 2 评论 -
线性表结构定义
#define MAXSIZE 100 //定义一个常量//顺序表结构定义typedef struct{ int data[MAXSIZE]; //存放数据 int length; //存储顺序表长度}Sqlist;//考试可以简写如下:// int A[MAX原创 2013-01-13 23:52:46 · 795 阅读 · 0 评论 -
数组循环左移P位源代码
/* 作者:jianxiawzx 时间: 2013/1/8 题目:对一个数组,进行左移p位操作,要求时间、空间复杂度尽量低*/#include#define MAXSIZE 20int number[MAXSIZE];void Re(int R[],int l,int r){ int i,j,temp; for(i=l,j=r;i<j;i++原创 2013-01-21 18:40:45 · 811 阅读 · 0 评论 -
西电ACM1197——斐波那契数列
原题如下:Description 闲的无聊的jxy有一天对斐波那契数列感兴趣了,希望能知道任意一位的斐波那契数,但因为能力不足,不会计算,所以希望聪明的你能帮助他解决这个问题。具体描述见输入说明。Input多组数据,输入exit结束第一行为一个字符串x 代表选择序号x为exit时,程序退出x为1时 ,存在第二行 ,第二行为一个数字n ,代表要输出第n个斐波那原创 2013-03-11 17:16:27 · 1170 阅读 · 0 评论 -
KMP字符串模式匹配算法
原理就不说了,学算法的都知道这基本上是查找一个字符串是否在另一个串中位置比较快的算法。代码如下:#include #include #define MAXSIZE 100int next[MAXSIZE];int S_lenth,D_lenth;char source[MAXSIZE],detination[100];void get_next(){ int i=1,j=0;原创 2013-03-12 14:50:15 · 997 阅读 · 0 评论 -
二分法求解超大项的斐波那契数列数值
我们将数列写成:Fibonacci[0] = 0,Fibonacci[1] = 1Fibonacci[n] = Fibonacci[n-1] + Fibonacci[n-2] (n >= 2)可以将它写成矩阵乘法形式:将右边连续的展开就得到:下面就是要用O(log(n))的算法计算:代码如下: /*求解任一项斐波那契数列值,输入要计算的某一项n,输出该原创 2013-03-11 17:15:45 · 2026 阅读 · 0 评论 -
求两个递增单链表的差集
/*求两个链表的差集只需在A中删除A、B共同的元素即可算法:设p、q分别指向A、B的头结点,循环进行比较,将节点值小的后移。 若两者所指节点值相同则删除p所指节点。最后p与q任意一指针指向NULL则结束*/void Difference(LNode *&A,LNode* B){ LNode *p=A->next,q=b->next; LNode *pre=A; L原创 2013-03-13 16:36:37 · 2585 阅读 · 0 评论 -
高斯模糊的算法
原文链接:http://www.myarea.top/2019/08/19/%E9%AB%98%E6%96%AF%E6%A8%A1%E7%B3%8A%E7%9A%84%E7%AE%97%E6%B3%95/免费资源网,更多免费资源等你来取通常,图像处理软件会提供”模糊”(blur)滤镜,使图片产生模糊的效果。“模糊”的算法有很多种,其中有一种叫做”高斯模糊”(Gaussian Blu...原创 2019-08-22 09:13:48 · 275 阅读 · 0 评论