自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 编译原理First集 Follow集 Select集

求解First集、follow集、select集

2022-10-06 12:22:24 601 1

原创 朴素贝叶斯分类

机器学习的经典算法:朴素贝叶斯(naive byes)分类贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。一:贝叶斯原理朴素贝叶斯分类算法是一个典型的统计学习方法,主要的理论基础就是贝叶斯公式。贝叶斯公式定义如下所示:先验概率:通过经验来判断事情发生的概率。后验概率:后验概率就是发生结果之后,推测原因的概率。条件概率:事件 A 在另外一个事件 B 已经发生条件下的发生概率,表示为P(A|B),读作

2022-04-07 22:25:24 8369 3

原创 字符串模式匹配

字符串模式匹配1.BF算法初始时让目标T的第 0 位与模式P的第 0 位对齐;顺序比对目标T与模式P中的对应字符:若 P 与 T 比对发现对应位不匹配,则本趟失配。将 P 右移一位与 T 对齐,进行下一趟比对;若 P 与 T 对应位都相等,则匹配成功,返回 T当前比较指针停留位置减去 P 的长度,即目标T 中匹配成功的位置,算法结束。若 P 与 T 比对过程中,T 后面所剩字符个数少于 P 的长度,则模式匹配失败。时间复杂度为O(m*n)int Find(Hstring &T,Hs

2021-10-24 22:18:17 1005

原创 有效的数独

有效数独题目:请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可示例 1:输入:board =[[“5”,“3”,".",".",“7”,".",".",

2021-10-06 12:16:41 145

原创 八皇后问题的递归与非递归算法

八皇后问题的递归与非递归算法问题:设在初始状态下在国际象棋棋盘上没有任何棋子(皇后)。然后顺序在第1行,第2行,…。第8行上布放棋子。在每一行中有8个可选择位置,但在任一时刻,棋盘的合法布局都必须满足3个限制条件,即任何两个棋子不得放在棋盘上的同一行、或者同一列、或者同一斜线上。1.非递归算法:q[n]:q[i]代表第i行的皇后在第i列在每行插入皇后时,检查是否存在攻击。1.检查不同列:q[i]!=q[j]2.检查不在同一斜线上:abs(q[i]-q[j])!=abs(i-j)abs代表正斜

2021-09-29 21:48:39 1806 1

原创 中缀表达式求值

中缀表达式求值合理运用栈,按照运算优先级,编程实现任意中缀算术表达式(可以只包含’+’、’-‘、’*’、’/’等双目运算符、小括号和结束符)的求值运算。通过操作符栈和操作数栈实现求值。遇见数字,直接压入操作数栈,遇见操作符时:1.当栈外优先级高于栈内优先级时:将操作符压入栈2.当栈外优先级低于栈内优先级时:输出栈顶的操作符,从操作数栈中取出栈顶的两个数进行计算后的结果压入栈3.当栈外优先级等于栈内优先级时,如果操作符栈栈顶=’(’,退栈不输出相同等级运算符栈内高于栈内int isp(char

2021-09-28 23:13:03 992

原创 只出现一次的数字

只出现一次的数字题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4解法一:1.将数组排序2.循环数组找出只出现一次的数字这种算法时间复杂度不为线性。这种解法代码就不展示了。解法二:这是我们今天主要讲的解法。通过位运算中的异或运算来解决。异或:两个位相同时为0,相异时为1。a^a=0;0^a=a;异或运算满足交换律,所

2021-09-27 21:26:20 50

原创 循环双链表的查找、插入与删除

查找(有头结点)按值查找1.前趋方向dblnode *p=first->rlink;while(p!=NULL&&p->data!=x){ p=p->rlink;}return p;2.后继方向dblnode *p=first->rlink;while(p!=NULL&&p->data!=x){ p=p->llink;}return p;定位查找查找第i个结点在链表中的位置dbllist *locat

2021-09-20 10:52:31 218

原创 求解约瑟夫问题

问题:编号为1、2、3、…、N的N个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。从指定编号为1的人开始,按顺时针方向自1开始顺序报数,报到指定数M时停止报数,报M的人出列,并将他的密码作为新的M值,从他在顺时针方向的下一个人开始,重新从1报数,依此类推,直至圆圈中只剩下一个人为止。解法:此时可以用不带头结点的循环单链表,可以不移动元素,仅修改连接指针即可。算法表示如下:#include "CircList.h"void Josephus(CircList&L,int n,int

2021-09-20 09:55:52 471

原创 单链表的查找、插入与删除

单链表(不带头结点)插入1.在第一个结点前插入newnode->link=first;first=newnode;2.在链表中间插入newnode->link=p->link;p->link=newnode;3.在链表末尾插入newnode->link=p->link;p->link=newnode;插入元素代码如下:bool insert(linklist&first,datatype x,int i){ linkn

2021-09-20 09:38:33 1332

原创 顺序表的查找、插入、删除

查找、插入与删除按值查找:在顺序表中从头查找结点值等于给定值x的结点int Find(seqlist&L,datatype x){ for(i=0;i<L.n;i++) { if(L.data[i]==x) return i; } return -1;}查找算法性能分析查找概率相等:p=1/n;ACN=(1+2+3+…+n)/n=(1+n)/2;查找不成功:数据比较n次。插入新元素bool insert(seqlist&L,datatype x,

2021-09-18 10:50:44 307

原创 线性表(数据结构)

线性表1.线性表定义:n(>=0)个数据元素的有限序列,记为L=(a1,a2,…,an)。(ai是数据元素,n是表长度,a1是首元素,an是尾元素)特点:1.除第一个元素外,其他每一个元素都有且仅有一个直接前趋。2.除最后一个元素外,其他每一个元素都有且仅有一个直接后继。要点:表中元素具有逻辑上的顺序性,在序列中各元素排列有其先后次序,有唯一的首元素和尾元素;表中元素个数有限;表中元素都是数据元素,即每一表元素都是原子数据,不允许表中套表。表中元素的数据类型都相同。这意味着每一表中

2021-09-18 10:17:31 510

原创 数据结构基本概念

@[TOC]数据结构第一章(绪论)概念与术语1.数据:所有能被输入到计算机中并被计算机程序加工、处理的所有符号的总称。(整数,字符,声音,图像,图形等)2.数据元素:数据的基本单位。(元素,节点,记录,顶点)在计算机程序中通常作为一个整体考虑。3.数据项:一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位。4.数据对象:由性质相同(类型相同)的数据元素组成的集合,数据对象是数据的一个子集。数据>数据对象>数据元素>数据项数据:图中的所有数据。数据项:表中的

2021-09-16 19:37:03 615

原创 删除有序数组中的重复项

删除数组中的重复项(C语言)1.遍历这个数组的每一个值,再循环这个值之后的每一个值,看是否有重复;#include <stdio.h> int removeDuplicates(int nums[], int numsSize){ int i,j,k=0; for(i=0;i<numsSize;i++) { int flag=1; for(j=i+1;j<numsSize;j++) { if(nums[i]==nums[j]) { fla

2021-09-15 00:05:54 158

原创 冒泡排序及优化

冒泡排序原理:比较相邻的元素,如果第一个比第二个大,就交换它们两个。如同它的名字一样,就是把小的浮到上面去。代码如下图所示:#include <stdio.h>void bubble(int a[],int n){ int i,j,temp; for(i=1;i<n;i++) { for(j=0;j<n-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=

2021-09-12 02:30:06 77

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除