自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 复试数据库篇[第2章关系数据库]

域笛卡尔积关系候选码、主码、主属性并、差、交、笛卡尔积。

2023-02-08 22:20:17 407 2

原创 复试数据库篇[第一章-绪论]

数据库数据库数据的三个基本特点:永久存储、有组织、可共享数据库管理系统数据库系统。

2023-02-08 17:06:59 599

原创 复试数据结构篇[第10-12章]

(1)形成归并段:按可用内存大小,将外存上含n个记录的文件分成若干长度为L的段,依次读入内存并利用有效的内部排序方法对它们进行排序,并将排序后得到的有序子文件重新写入内存,有序子文件称为归并段;(2)归并:对这些归并段进行逐躺归并,使归并段逐渐由小至大,直至得到整个有序文件为止;和直接插入排序的不同之处在于:查找操作不同,采用的是折半查找,移动次数还是一样。增加归并段个数:增加一次归并的个数。

2023-02-06 17:40:46 253

原创 复试数据结构篇[第7,9章]

区分极大连通子图和极小连通子图极大连通子图是无向图的连通分量,要求该连通子图包含其所有的边;极小连通子树既要保持图连通又要使得边数最少的子图;适合于稠密图适合求顶点的出度和入度邻接多重表是无向图的一种链式存储结构两种:深度优先搜索、广度优先搜索复杂度对于无权图可以通过广度优先搜索查找最短路径对于带权图可以采取迪杰斯特拉算法单源最短路径:迪杰斯特拉算法(不适合边上带有负权值的)每对顶点间的最短路径:弗洛伊德算法算法效率AOV网:拓扑排序定义:逆拓扑排序:AOE网

2023-02-06 10:20:34 403

原创 pycharm 导入第三方库失败

1.终端进入项目的scripts路径。4.pip install镜像。4.pip install 库。3.镜像文件放到上述文件夹。2.查看python版本。3.下载相应镜像文件。

2023-02-03 14:00:00 377

原创 复试数据结构篇[第5章-第6章]

二维数组有两种存储方式:(1)以行序为主序(2)以列序为主序线性表的推广,也被称为列表头尾链表的存储结构注意:二叉树的子树有左右之分。

2023-02-01 20:05:32 314

原创 复试--数据结构篇[1-4章]

为什么对单链表设置头节点:(1)保证每一个结点都有前驱节点,使得插入删除结点的处理统一。(2)在表空时存在头节点,使得空表和非空表的处理统一。(3)可以在头结点中存放一些信息,比如结点的个数。:(1)实现线性表的链式存储结构–单链表、循环链表、双向链表。(2)实现非线性结构:二叉链表、十字链表、邻接表、邻接多重表。使用数组实现,数组的一个分量代表一个结点,在用一个游标代替指针 指示 结点在数组中的相对位置。散列存储:根据结点的关键字通过散列函数计算节点的地址。指向链表的第一个结点(首元结点)

2023-02-01 14:56:54 243

原创 数据可视化

文章目录1.概述常见的图表类型可视化工具2. Matplotlib(1)subplot()函数创建单个子图(2)通过subplots()创建多个子图(3)通过add_subplot()方法添加或选中子图(5)添加各类标签(6)绘制常见图表1.直方图2.散点图3.柱状图---- 保存图形1.概述常见的图表类型直方图、折线图、条形图(柱形图)、饼图、散点图、箱型图可视化工具2. Matplotlib如果不希望在默认的画布上绘制图形,则可以调用figure()函数构建一张新的空白画布。

2021-11-21 20:13:39 297

原创 数据聚合与分组运算

1.分组与聚合的原理2.通过groupby()方法将数据拆分成组

2021-11-21 17:24:25 673

原创 数据预处理

文章目录1.数据清洗1.1空值和缺失值处理1.2重复值的处理1.3异常值的处理(1)基于拉依达原则检测异常值(2)基于箱线图检测异常值1.4更改数据类型(1)明确指定数据类型(2)通过astype()方法强制转换数据的类型(3)通过to_numeric()函数转换数据类型2.数据合并2.1 轴向堆叠数据(1)横向堆叠与外连接(3)纵向堆叠与内连接2.2 主键合并数据2.3根据行索引合并数据2.4 合并重叠数据3.数据重塑3.1重塑层次化索引(1)stack()方法(2)unstack()方法3.2 轴向旋转

2021-11-21 15:39:53 445

原创 数据分析工具Pandas

1、Pandas的数据结构分析两种主要的数据结构:Series,一维数据结构DAtaFrame是二维的、表格型的数据结构1.1 Series索引位于左边,数据位于右边创建Series类对象:(1)用列表创建(2)用字典创建Series对象提供了两个属性index和values进行操作数据也可以通过直接索引获取数据例如:下面这个是列表创建的Series,可以这样用,字典好像不可以,会报错1.2 DataFrame行索引位于最左边一列,列索引位于最上面一行,数

2021-11-21 10:40:49 394

原创 算法实验-1-5_自然合并排序算法

先举个例子看一下自然合并排序和合并排序的区别:可以看出自然合并排序在最初时就有已经排好序的子数组,再利用合并排序的原理对于已经排好序的子数组进行两两合并。一个解释:合并排序 :是将两个(或两个以上)有序表合并成一个新的有序表自然合并排序:就是在合并排序时,建立子数组段,通过数组已排序的(自然排序,不重新排序)子数组段。问题:自然合并排序算法是对合并排序算法的一种改进。设a[0:n-1]是无序数组,用一次对数组a的扫描可以找出其中自然排好序的子数组,然后将相邻的排好序的子数组段两两合并,

2021-11-19 14:10:00 1597 1

原创 Python数据分析第二章Numpy

1、Numpy数组对象NumPy最重要的一个特点是其N维数组对象,即ndarry对象ndarray对象一些重要属性:ndarray对象中存储元素的类型必须是相同的import numpy as npdata = np.arange(12).reshape(3,4)dataarray([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]])type(data)numpy.ndarraydata.ndim2

2021-11-18 16:41:53 1127

原创 R语言-第8章数学运算与模拟

1.数学函数1.1计算概率生成组合数choose()> choose(5,3)[1] 10> choose(10,3)[1] 120连乘函数prod()> prod(1:5)[1] 120例子:从一副完全打乱的52张扑克中任取4张,计算下列事件的概率:(1)抽取4张依次为红心A,方块A,黑桃A和梅花A的概率;(2)抽取4张为红心A,方块A,黑桃A和梅花A的概率。第(1)问是排列问题> 1/prod(49:52)[1] 1.53907

2021-10-29 19:10:34 2444

原创 R语言-第十一章字符串操作

1.字符串操作函数可以用character()函数构造初始字符型向量> character(length=5)[1] "" "" "" "" ""grepgrep(pattern,x)语句在字符串向量x里捜索给定子字符串pattern。如果x有n个元素,即包含n个字符串,则grep(pattern,x)会返回一个长度不超过n的向量。这个向量的每个元素是x的索引,表示在索引对应的元素x[i]中有与pattern匹配的子字符串。> grep("Pole",c("Equator

2021-10-25 21:46:17 1703

原创 R语言-第十章输入输出

文章目录1.连接键盘与显示器1.1使用scan()函数1.连接键盘与显示器1.1使用scan()函数

2021-10-25 21:23:48 2281

原创 R语言实现桶排序算法

问题:R语言实现桶排序算法,对1000以内的若干个数进行排序。代码:tongSort<-function(v) { #桶排序 maxn=1000 #待排序的数都小于1000 b<-rep(0,maxn) for (i in 1:maxn) b[v[i]]=b[v[i]]+1 for (i in 1:maxn) { while (b[i]) { cat(i," ") b[i]=b[i]-1 } }}v<-c(5

2021-10-24 17:59:01 127

原创 sin(x^2)cosx 求导数的R命令

问题:请写出对 sin(x^2)cosx 求导数的R命令。代码:> D(expression(sin(x^2)*cos(x)),"x")cos(x^2) * (2 * x) * cos(x) - sin(x^2) * sin(x)

2021-10-24 17:58:05 327

原创 R语言设计实现求1~n的和的递归函数

问题:请用R语言设计实现求1~n的和的递归函数代码:SUM <- function(n){ if(n==0) {sum=1} else if(n==1){sum=2} else{ sum=SUM(n-2)+SUM(n-1) } return(sum)}

2021-10-24 17:57:05 1481

原创 R语言实现输出九九乘法表

问题:请用R语言实现输出九九乘法表。参考代码:for(i in 1:9){for(j in 1:i)cat(j,"*",i,"=",i * j,seq=" “)cat(”\n")}代码:for(i in 1:9){ for(j in 1:i){ m = j*i cat(i,'*',j,'=',m,' ') } cat('\n')}

2021-10-24 17:48:05 1941

原创 R语言负值索引

问题:请写R命令,利用负值索引用来删除掉下面矩阵的第1行及第3行元素。z<-matrix(1:12,ncol=3)z[,1] [,2] [,3][1,] 1 5 9[2,] 2 6 10[3,] 3 7 11[4,] 4 8 12代码:z <- matrix(1:12,ncol = 3)zz[c(-1,-3),]...

2021-10-24 17:47:01 1879

原创 R语言子矩阵赋值

问题:请编写R命令,采用子矩阵赋值的方式生成所约定的矩阵。已知z矩阵及x矩阵的内容如下:z<-matrix(nrow=5,ncol=6)z[,1] [,2] [,3] [,4] [,5] [,6][1,] NA NA NA NA NA NA[2,] NA NA NA NA NA NA[3,] NA NA NA NA NA NA[4,] NA NA NA NA NA NA[5,] N

2021-10-24 17:46:10 2169

原创 R语言函数rep()

问题:请写出利用函数rep()创建向量c(1,2,3,4,1,1,0,0,1,0,1,0)的命令?x1<-1:4x2<-rep(c(1,0),each=2)x3<-rep(c(1,0),2)y<-c(x1,x2,x3)y

2021-10-24 17:44:32 628

原创 R语言序列步长为0.5?

问题:请回答下面的R命令生成的序列步长为0.5? (事实上,这里有一个坑)i<-51:i/2 [1] 0.5 1.0 1.5 2.0 2.5这条语句先执行1:i再进行除法运算,这是运算优先级的原因,:的运算优先级高于/,所以会出现以上结果...

2021-10-24 17:43:08 1334

原创 R语言输出向量x中第一次出现5的位置

问题:请用R语言编写一个函数first5(x),要求输出在输入向量x中第一次出现5的位置。 若向量x中没有5,则输出“No Finding”代码:> first5 <- function(x){+ wu <- "No finding"+ a <- 1+ for(i in 1:length(x)){+ if(x[i]==5) {+ print(i)+ break+ }+ a=a+1+ if(

2021-10-24 17:41:47 901

原创 R求给定向量中的元素的和

问题:编一个函数。功能是求给定向量中的元素的和> add<-function(x){+ sum<-0+ for(i in x){+ sum = sum+i+ }+ return(sum)+ }> x <- c(1,2,3)> add(x)[1] 6

2021-10-24 17:33:26 908

原创 算法实验1-4查找两个有序数组合并之后的中位数

插个题:在解决这个算法题之前,先看一下冒泡排序:借个大佬的图:对于冒泡,是相邻两个元素比较,大的数向后移,每循环一次就确定一个“最大的数”,排在最后,下一次比较时就不用再排了,所以代码的第二个for循环是n-i-1。步入正题问题:设两个长度分别为m和n的有序数组a[0:m-1]和b[0:n-1],请使用分治策略找出这两个有序数组合并之后的中位数算法思路:由于两个数组合并之后的中位数,比较nums1和nums2的中位数a,b,若a<b,则合并数组的中位数在a的右边,b的左边。若a&g

2021-10-23 19:55:03 219

原创 算法1-3-查找第k小元素

问题:设a[0:n-1]是无序数组,请使用分治策略找出这n个元素中第k(1≤k≤n)小的元素输入输出:输入n和k:10 4输入数组:12 3 1 8 7 16 9 11 20 2结果:7算法思路:其实跟快速排序算法类似,首先确定一个基数,从第一个开始,将输入的数组分成三段:{小于基数}、{基数}、{大于基数},一轮快速排序结束后,基数的位置是确定的,所以可以判断基数所在的位置与查找的k值是否相等,如果相等则返回基数值即可,再采用递归方法,如果k值比基数所在的位置小则在数组左边查找,如果k值

2021-10-23 16:59:35 533

原创 算法实验1-2-非递增快速排序

问题:设a[0:n-1]是无序数组,请修改快速排序算法,将输入元素按非增序排列。先了解一下快速排序:借个图:快速排序(Quick Sort)使用分治法策略。基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序流程:(1) 从数列中挑出一个基准值。(2) 将所有比基准值小的摆放在基准前面,所有比基准值大的

2021-10-23 15:52:34 773

原创 算法实验-修改快速排序算法

问题:设a[0:n-1]是无序数组,请修改快速排序算法,将输入元素按非增序排列。代码:#include<stdio.h>#include<string.h>void Swap(int *x, int*y){ //交换两个数 int temp; temp = *x; *x=*y; *y=temp;}int Partition(int a[],int p,int r) { int i = p,j=r+1; int x = a[p]; //以x为基准排序

2021-10-21 22:04:39 555

原创 算法实验1-1-二分搜索算法

问题:二分搜索算法代码1:#include<stdio.h>#include<string.h>int binarySearch(int a[] ,int x, int n){ int left=0; int right=n-1; while(left<=right){ int middle = (left+right)/2; if(x==a[middle]) return middle; if(x>a[middle]) left=middle+

2021-10-21 22:03:34 164

原创 算法实验-最大k乘积问题

问题:给设I是一个n位十进制整数,如果将I划分为k段,则可得到k个整数。这k个整数的乘积称为I的一个k乘积。试设计一个算法,对于给定的I和k,求出I的最大k乘积。输入:正整数n和k,以及一个n位十进制整数I输出:I的最大k乘积代码如下:#include<iostream> using namespace std; #define N 100int m[N][N]; char num[N]; //把字符串转化为整型 int atoi(char arr[],int

2021-10-21 22:01:10 417

原创 算法实验- 矩阵连乘问题

问题:给定n个矩阵{A1,A2,…,An},Ai与Ai+1是可乘的,i=1,2,…,n-1。试设计一个算法确定矩阵的乘法顺序,使得元素相乘的总次数最小。输入:向量P=<P0,P1,…,Pn>,其中P0,P1,…,Pn为n个矩阵的行数和列数输出:最少乘法次数,以及矩阵链乘法加括号的位置代码:#include<iostream>using namespace std;#define N 7 //N为7,实际表示有6个矩阵/**矩阵链构造函数:构造m[][]和s[

2021-10-21 22:00:05 312

原创 算法实验-租用游艇问题

问题:长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。 游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i, j)(1≤i< j ≤ n)。试设计一个算法,计算出从游艇出租站1到游艇出租站n所需的最少租金。思路:本问题需要采用二维数组,利用“对角线”来计算,我是设置间隔值从2开始(不相邻)。假设从第 i 站到第 j 站的最优办法是:从 i 到 k (i<=k<=j),再从 k 到 j ,即 r( i ,

2021-10-21 21:58:39 816

原创 C++-最小m段和问题

问题:给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列。 如何分割才能使这m段子序列的和的最大值达到最小?思路:代码:/*分析:f[i][j]表示前i个数划分j段的最大最小值;状态转移方程:f[i][j]=max{f[i-k][j-1],sum(k,j)}*/#include<memory.h>#define INF 1e9#define MAX 100#include <iostream>#include &l

2021-10-20 21:11:17 256

原创 C++-石子合并问题

可以看大佬文章问题:问题描述:在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选择相邻的两堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。算法设计:试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。思路:最小值是总是最小的两个数相加,最大值是总是最大的两个数相加。在此我们假设有n堆石子,一字排开,合并相邻两堆的石子,每合并两堆石子得到一个分数,最终合并后总分数最少的。我们设m(i,j)定义为第i堆石子到第j堆石子合并后的最少总分数。a

2021-10-20 19:45:01 808

原创 C++--最长单调递增子序列

问题:在一个给定的数值序列中,找到一个子序列,使得这个子序列元素的数值依次递增,并且这个子序列的长度尽可能地大。最长递增子序列中的元素在原序列中不一定是连续的。思路:首先确定一个子序列的当前值t和子序列的长度len,循环数组,从第一个数开始与后面的值比较大小,更新t和len的值,更新t和len的值。下一次再从第二个数这样与后面的数比较大小,每一次循环完都会比较len的长度,选择最大的值,并且把最大长度的当前第一个数赋值给son(子序列的第一个数),这样就找到了最大子序列的长度和子序列的第一个值,只需

2021-10-20 17:21:41 548

原创 C++-众数问题

问题:给定含有n个元素的多重集合s,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如:S={1,2,2,2,3,5}。多重集S的众数的2,其重数为3.算法设计:对于给定的由N个自然数组成的多重集S,计算S的众数及其重数。数据输入:第一行n,第二行n个数结果输出:输出文件有2行,第1行是众数,第2行数重数。...

2021-10-20 16:52:02 1191

原创 C-子数组交换问题O(1)的辅助空间

问题:设a[0:n-1]是一个有n个元素的数组,k(0<=k<=n-1)是一个非负整数。试设计一个算法将子数组a[0:k]与a[k+1,n-1]换位。要求算法在最坏情况下耗时O(n),且只用到O(1)的辅助空间。思路:我采用的是向前循环换位,对数组进行循环,每一次循环每一个元素都向前移动一个位置,最后再将第一个数赋给最后一个元素即可,以此循环k次则会将需要交换的第k个位置前的数与后的数交换,需要交换第几个元素就循环k次即可。代码如下:C++:#include<iostre

2021-10-19 22:03:37 381

原创 C++-改写二分搜索算法

问题:设a[0:n-1]是已排好序的数组,请改写二分搜索算法,使得当x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。...

2021-10-19 21:33:21 720

空空如也

空空如也

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

TA关注的人

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