数据结构与算法
小蓝的程序猿生活
学生
记录所学知识
展开
-
Python 利用增量穷举法思路生成幂集
(4)在步骤(3)得到的ps的每一个集合元素的末尾添加’c’构成新列表元素[‘c’],[‘a’,‘c’],[‘b’,‘c’],[‘a’,‘b’,‘c’],将其添加到ps中,即。(3)在步骤(2)得到的ps的每一个集合元素的末尾添加’b’构成新列表元素[‘b’],[‘a’,‘b’],将其添加到ps中,即。(2)在步骤(1)得到的ps的每一个集合元素的末尾添加’a’构成新列表元素[‘a’],将其添加到ps中,即。(1)产生一个空列表添加到ps中,即。最后的ps构成a~c的幂集。原创 2023-03-24 15:13:20 · 263 阅读 · 2 评论 -
快速幂算法(普通幂算法进阶版)
快速幂算法(普通幂算法进阶版)具体要求:求a^b的后三位数。基本算法思想:减少指数大小,减少循环次数。以2102^{10}210为例。当指数为偶数时,先将指数除以二,再将底数平方。210=452^{10}=4^{5}210=45当指数为奇数时,将指数减一再除以二,提出底数,再将底数平方。45=4×1624^{5}=4\times 16^{2}45=4×162一直运算下去直至:210=4×25612^{10}=4\times 256^{1}210=4×2561这样,循环操作从原来的10原创 2021-10-10 19:51:55 · 213 阅读 · 0 评论 -
用循环队的方式处理杨辉三角形问题(C++)
用循环队的方式处理杨辉三角形问题(C++)#include <iostream>#include<malloc.h>using namespace std;const int MAX=100;//循环队列typedef struct { int data[MAX]; int front; //头指针 int rear; //尾指针} SeqQueue;//初始化循环队列void InitQueue(SeqQueue *&q)原创 2021-04-26 17:20:37 · 462 阅读 · 0 评论 -
用队列处理约瑟夫环问题(C++)
用队列处理约瑟夫环问题(C++)#include<iostream>#include<malloc.h>using namespace std;const int maxsize=50;typedef struct//创建循环队结构体 { int data[maxsize]; int front,rear;}Squeue;void CreateQueue(Squeue *&s)//初始化循环队 函数 { s=(Squeue *)malloc(sizeo原创 2021-04-26 17:14:57 · 1334 阅读 · 4 评论 -
模式匹配,BF匹配法
BF字符匹配算法运用暴力破解算法,首先考虑使用串的模式存放目标字符。先要初始化目标串和模式串再对二者进行暴力匹配暴力匹配:对两者一一比较,相同则后移,不相同则回退最终匹配成功将返回,模式串与目标串相匹配的前面字符的个数否则返回0//字符匹配(顺序串)#include<iostream>#include<malloc.h>using namespace std;const int maxsize=50; //声明串的类型typedef struct{ ch原创 2021-04-29 22:58:43 · 167 阅读 · 0 评论 -
字符串匹配(C++)
运用BF和KMP两种方法进行字符串匹配(顺序串)1.BF算法2.KMP算法例子:s=“abceebcabcabc” t=“ebca”返回值:4输入:目标串//“abceebcabcabc”模式串//“ebca”输出:成功:模式串中第一个字符在目标串中的位置不成功:-1一、BF算法int BF(sqstring s1,sqstring s2){ int i=0,j=0; while(i<s1.length&&j<s2.length) {//如果匹配原创 2021-05-02 20:18:34 · 6454 阅读 · 2 评论