自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (3)
  • 收藏
  • 关注

原创 java学习笔记--运算符

java运算符运算符:用来指明对于操作数的运算方式按照操作数的数目来进行分类单目运算符例如:a++双目运算符例如: a+b三目运算符例如:(a>b)?x:y (表示如果a>b为真,执行(或输出)x,否则执行y)按照运算符的功能来进行分类一、算术运算+(加),-(减),*(乘),/(除), %(取余,取模)++(自增) ,- -(自减)public class Text{ public static void main(String[] args){ int x

2020-12-09 22:02:11 206 10

原创 java学习笔记--基本数据类型

java数据类型基本数据类型一、整型(1)byte字节型所占内存:8bit(1字节)0 00000001字节(byte) = 8比特(bit)用第一个bit位置来记录符号,0表示正数,1表示负数;例如-1为 1 0000001,正1为 0 0000001。能表示整数的范围:-128 ~ 127 (-2的7次方 ~ 2的7次方 - 1)(2)short 短整型所占内存:16bit0 0000000 00000000取值范围:-32768 ~ 32767 (-2的15次方 ~ 2的15次

2020-12-09 19:27:45 224

原创 java学习笔记(2)--hello world

java编写一段java源代码一、新建一个java文档(这里用记事本来写)首先创建一个文本:然后将文本后缀更改为.java如果不显示后缀名字,这里以我的电脑为例二、用记事本打开新建的java文件,并写入代码,并保存class Hello{ public static void main(String[] args){ System.out.println("hello world! ");}}public:访问权限修饰符。表示公有的,对所有其他的程序,以及子程序,以及包以

2020-12-07 16:15:29 218 1

原创 java学习笔记(1)--win7 java环境的搭建

java的学习笔记(一)java环境1.下载一个安装程序需下载一个jdk安装包,JDK:Java开发员的软件开发工具包。官网网址 https://www.oracle.com/java/technologies/javase-downloads.html也可以在百度上直接搜。(需根据自己电脑下载)。而 https://download.csdn.net/download/qq_43402544/13455675 这里是我在网上下载的,是根据我电脑windonws7-32位下载的。2.安装j

2020-12-07 14:44:19 170 1

原创 归并排序 C语言实现

归并排序( Merging Sort )就是将两个或两个以上的有序表合并成一-个有序表的过程。将两个有序表合并成个有序表的过程称为2-路归并,2-路归并最为简单和常用。算法思想:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为1的有序序列为止。书上的例子:时间复杂度O(nlog2log_2log2​n)空间复杂度O(n)算法特点:1)是稳定排序。2)可用于

2020-11-20 21:55:03 571

原创 堆排序 C语言实现

堆排序(Heap Sort) 是一种树形选择排序,在排序过程中,将待排序的记录Data[1…n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩 子结点之间的内在关系,在当前无序的序列中选择关键字最大(或最小)的记录。时间复杂度O(nlog2log_2log2​n)空间复杂度O(1)算法特点:1 ) 是不稳定排序。2 ) 只能用于顺序结构,不能用于链式结构。3 ) 初始建堆所需的比较次数较多,因此记录数较少时不宜采用。堆排序在最坏情况下时间复杂度为O(nlog2n),相对于

2020-11-20 16:42:37 920 1

原创 简单选择排序 C语言

简单选择排序(Simple Selection Sort)也称作直接选择排序。算法步骤:1) 设待排序的记录存放在数组Data[1…n]中。第一趟从Data[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为Data[k],交换Data[1]和Data[k]。2) 第二趟从Data[2]开始,通过n- 2次比较,从n-1个记录中选出关键字最小的记录,记为Data[k],交换Data[2]和Data[k]。3) 依次类推,第i趟从Data[i]开始,通过 n - i 次比较,从n-i

2020-11-20 12:28:37 1972 2

原创 快速排序 C语言实现

快速排序快速排序(Quick Sort )是由冒泡排序改进而得的。在冒泡排序过程中,只对相邻的两个记录进行比较,因此每次交换两个相邻记录时只能消除一个逆序。 如果能通过两个(不相邻)记录的一次交换,消除多个逆序,则会大大加快排序的速度。快速排序方法中的一次交换可能消除多个逆序。课本上的例子:时间复杂度最好情况:O(nlog2log_2log2​n)最坏情况:O(n2n^2n2)平均情况:O(nlog2log_2log2​n)空间复杂度O(log2log_2log2​n)算法特点:1)记

2020-11-19 22:06:22 1034 1

原创 冒泡排序 C语言

冒泡排序冒泡排序( Bubble Sort)是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上 “漂浮” (左移),或者使关键字大的记录如石块一样逐渐向下 “坠落”(右移)。算法步骤:(1)设待排序的记录存放在数组Data[1…n]中。首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即Data[1].key > Data[2].key),则交换两个记录。然后比较第二个记录和第三个记录的关键字。依次类推,直至

2020-11-19 19:16:44 489 1

原创 希尔排序 C语言实现

希尔排序希尔排序( Shell’s Sort)又称“缩小增量排序”( Diminishing Increment Sort),是插入排序的一种, 因D.L.Shell 于1959 年提出而得名。直接插人排序,当待排序的记录个数较少且待排序序列的关键字基本有序时,效率较高。希尔排序基于以上两点,从“减少记录个数”和“序列基本有序”两个方面对直接插入排序进行了改进。基本思想:先将整个待排记录序列分割成若干子序列,分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。

2020-11-19 18:37:52 1851

原创 折半插入排序 C语言

折半插入排序 C语言直接插入排序采用顺序查找法查找当前记录在已排好序的序列中的插入位置,这个“查找”操作可利用“折半查找”来实现,由此进行的插人排序称之为折半插入排序( Binary Insertion Sort )。算法步骤:①设待排序的记录存放在数组Data[1…n]中,Data[1]是一个有序序列。② 循环n-1次,每次使用折半查找法,查找Data[ i ] ( i=2,…,n )在已排好序的序列DataI1…i-1]中的插入位置,然后将Data[ i ]插人表长为i-1的有序序列Data[1

2020-11-19 17:10:14 1560

原创 直接插入排序 C语言实现

直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。算法步骤:(1)设待排序的记录存放在数组Data[1…n]中,Data[1]是一个有序序列。(2)循环n-1次,每次使用顺序查找法,查找Data[ ](i = 2,…,n)在已排好序的序列Data[ 1…i-1 ]中插入位置,然后将Data[i]插人表长为i-1的有序序列Data[ 1…i-1 ],直到将Data[n]插人表长为n-1的有序序列Data[ 1…n-1 ],最后

2020-11-19 16:21:03 804

原创 二叉排序树的创建,插入及删除 - C语言

这里的二叉排序树的创建是根据课本上写的,其中掺杂了递归思想,之前的写的二叉树的创建是为非递归的方法https://blog.csdn.net/qq_43402544/article/details/109228383。完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct//关键字结构体 { int key;//关键字项 int otherinfo;//

2020-11-09 22:17:08 9862 4

原创 线性表的查找 C语言

还是书上的内容。(1)折半查找我这里先写折半查找(又名二分查找),是一种效率较高的查找方法,就是有个前提,查找数据的前提是数据本身是从小到大的有序排列的。只适用于有序表。时间复杂度为:代码如下:int SearchList3(SSTable ST,int key)//折半查找(二分查找),前提必须是从小到大的有序排序 { int mid, low = 1, high = ST.length;//初始化完成 while(low<high) { mid = (low+high

2020-11-09 10:44:50 2423 2

原创 图的关键路径 C语言

还是按照书上给的例子:图的关键路径必须了解的(以下都是自己理解的):(1)AOE-网:带权值的AOV-网。(AOV-网是不带权值且没有回路的有向图)(2)Ve(i):顶点V(i)的最早发生时间。这里开始只知道图的源点Ve(0)的值,初始点顶点Ve(0)为0,Ve(i)的值便是从V(0)开始沿着各种路径到达顶点V(i)的最长路径。例如:图中V(0)有两种路径到达V(4)选择最长的那条,故Ve(4) == 7。(3)Vl(i):顶点V(i)的最迟发生时间。只有求出所有Ve(i)才能开始求Vl(i),这

2020-11-08 21:02:45 888 1

原创 有向图的拓扑排序 C语言

这里使用我随便画的例子:这种用顶点表示活动,用弧表示活动间的优先关系的有向图称为顶点表示活动的网(Activity On Vertex Network),简称AOV-网。按照我的理解是:AOV-网是不带权值且没有回路的有向图。完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MVNum 100 //最大顶点数 #define MAXSIZE 100 //最大栈容量

2020-11-04 21:52:43 2831 7

原创 有向图的最短路径--弗洛伊德算法 C语言

这里有点懵!还是按书上的例子(这里用邻接矩阵表示)完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MaxInt 32767//无穷值设置 #define MVNum 100 //图的最大容量 ,也可以称为图的最大顶点数 void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出

2020-11-04 19:01:12 2392 2

原创 图的最短路径--迪杰斯特拉算法 c语言

还是按照书上的例子:完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MaxInt 32767//无穷值设置 #define MVNum 100 //图的最大容量 ,也可以称为图的最大顶点数 void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出 if(getchar()=='

2020-11-02 22:33:34 3711 3

原创 图的最小生成树--克鲁斯卡尔算法 C语言

克鲁斯卡尔算法构造最小生成树。还是根据书上的例子进行构造:步骤为(代码用邻接矩阵表示上图):完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MaxInt 32767//无穷值设置 #define MVNum 100 //图的最大容量 ,也可以称为图的最大顶点数 void Interrupt(void)//创建一个中断函数 { while(1)//用于检

2020-11-01 22:15:40 2673

原创 图的最小生成树 -普里姆算法 c语言

这里运用邻接矩阵来进行对普里姆算法的实现。还是按照课本上的例子:代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MaxInt 32767#define MVNum 100 //图的最大容量 ,也可以称为图的最大顶点数 void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出 if

2020-11-01 16:58:46 2302 2

原创 图的广度优先搜索遍历 -- c语言

图的广度优先搜索遍历,以我的理解是:先以一个顶点做起点,一层一层的进行输出打印。这里引用书上的一个例子。完整代码如下(邻接表的形式):#include <stdio.h>#include <stdlib.h>#include <string.h>#define MVNum 100 //最大顶点数 //创建一个中断函数 void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出

2020-10-31 16:36:25 4672 2

原创 图的深度优先搜索遍历 -- c语言

相比于我之前的邻接矩阵和邻接表的创建知识点多了个深度优先搜索函数。可以在两篇直接增加该函数,便是邻接矩阵或邻接表的深度优先搜索。首先是邻接矩阵的深度优先函数。都是书上的,只是多了几个变量的定义和初始化函数代码如下:bool visited[MVNum];//访问标志数组 ,其初始值为false void InitVisited(bool *visited)//标志数组初始化 { for(int i=0;i<MVNum;i++) visited[i] = false;} int

2020-10-30 22:30:31 1196 1

原创 无向图 邻接多重表的创建 - c语言

并不一定全,但是运行成功了。代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_VERTEX_NUM 20typedef enum{unvisited,visited} VisitIf;//变量名称转换 typedef struct EBox{ VisitIf mark;//变量mark只能取unvisited和visited;未访问和已访问 int iv

2020-10-30 16:50:31 836

原创 有向图 十字链表的创建 - C语言

代码还是要求严格的输入操作,没有判错能力。见谅!代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_VERTEX_NUM 20void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出 if(getchar()=='\n') break;} typedef struct.

2020-10-28 22:45:01 707 1

原创 无向图 邻接表的创建 - C语言

还是书上的。代码运行时的输入操作还是必须要严格进行。完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MVNum 100 //最大顶点数 void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出 if(getchar()=='\n') break;} typedef st

2020-10-27 22:09:35 3621 1

原创 图的邻接矩阵--C语言

由于没做输入挑选工作,所以只能按照写对。(无向图)完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MVNum 100void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出 if(getchar()=='\n') break;} typedef struct{ ch

2020-10-26 22:47:33 694

原创 任意进制转换十进制 -- c语言

任意进制转换十进制 – 数据结构c语言队列操作实现代码也不算是任意进制,最高只能到十六进制。见谅!代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 100 //静态顺序栈存储的最大空间 const char f[]="0123456789ABCDEF";//定义一个全局常量 ,方便导出十进制以上的不为数字形式的数据的显示 void Interrupt

2020-10-25 11:48:03 3879

原创 大数相加 - C语言

#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct StackNode { char data; struct StackNode *next; }SqStack,*LinkStack;void InitStack(LinkStack &S)//栈的初始化,只有创建一个栈顶结点这一步 { S = (SqStack*)malloc(sizeof(SqSt

2020-10-24 23:02:02 332

原创 矩阵的对称性,自反性和反对称性的判断

用C语言实现离散数学中对矩阵的简单操作及对矩阵的判断判断是否输入的矩阵是否为方阵,在是方阵的基础上判断是否具有对称性,反对称性和自反性。对称矩阵:一个方形矩阵,其转置矩阵和自身相等。对称矩阵是指以主对角线为对称轴,各元素对应相等的矩阵。用线性代数书上的解释是:对称矩阵是一个方形矩阵,其转置矩阵和自身相等。反对称矩阵:反对称矩阵,它的主对角线上的元素全为零,而位于主对角线两侧对称的元素反号。线性代数书上解释为:自反性:关系矩阵的主对角线上元素值全部为1反自反性:关系矩阵的主对角线上元素全部为0

2020-10-23 21:05:47 20210 5

原创 C语言 中序遍历二叉树--非递归算法

完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct BiTNode//二叉树的结构体 { char ch;//二叉树的数据域 struct BiTNode *lchild,*rchild;//二叉树的指针域 }BiTNode ,*BiTree;typedef struct StackNode //栈的结构体 { BiTree data;//栈

2020-10-22 20:52:26 4517 1

原创 C语言 哈夫曼树的实现及 递归实现哈夫曼编码

构建哈夫曼树算法的实现可以分为两大部分。(1)初始化:首先动态申请2n个单元;然后循环2n-1次,从1号单元开始,依次将1至2n-1所有单元中的双亲、左孩子、右孩子的下标都初始化为0;最后再循环n次,输入前n个单元中叶子结点的权值。完成初始化的状态图为图中的(a)。(2)创建树:循环n-1次,通过n-1次的选择、删除与合并来创建哈夫曼树。选择是从当前森林中选择双亲为0且权值最小的两个树根结点s1和s2;删除是指将结点s1和s2的双亲改为非0;合并就是将sl和s2的权值和作为一个新结点的权值依次存人到数组

2020-10-22 20:01:10 3435 1

原创 二叉排序树-非递归形式 C语言

完整代码如下:#include <stdio.h>#include <stdlib.h>typedef struct BiTNode{ int data;//二叉树数据域 struct BiTNode *lchild,*rchild;//二叉树指针域 }BiTNode,*BiTree;void InitTree(BiTree &T)//初始化二叉树 { T = (BiTNode*)malloc(sizeof(BiTNode));//创建一个头结点 .

2020-10-22 19:09:51 1089

原创 C语言 线索二叉树

线索二叉树,我个人的理解是:在创建一个二叉树的基础上,把二叉树中的只有一个孩子或没有孩子的结点中的指向空的指针进行填充,以便于二叉树的遍历。首先,还是先创建一个二叉树。还是以上个代码中所表示的样板为例(懒)。画不怎么好看,请见谅!然后,便是对已经建立的二叉树进行线索化。上图是对头结点Thrt的初始化,结点pre为全局变量。另外需要记住:(1)LTag为0时指向该结点的左孩子,为1时指向该结点的前驱;(2)RTag为0时指向该结点的右孩子,为1时指向该结点的后继。对二叉树的线索化:前:

2020-10-22 13:51:32 400 1

原创 C语言 创建二叉树及对二叉树的操作

代码都是书上的。需要注意的是怎么输入。第一行 为自己输入的数据,在创建的二叉树中数据域为char型,故空格和enter键也会被存入二叉树数据中。‘#’号总比二叉树数据结点多一个,不然一直在输入,无法进入输出。输出是中序遍历打印的。根据上面的输入数据可以画出自己创建的二叉树(上图)。这是草稿纸上的操作,代码结果只输出中序遍历结果。完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>

2020-10-22 11:16:17 8563 12

原创 C语言 串的链式存储

串的链式存储:顺序串的插入和删除操作不方便,需要移动大量的字符。因此,可采用单链表方式存储串。由于串结构的特殊性一结构中的每个数据元素是 一个字符,则在用链表存储申值时,存在个“结点大小”的问题,即每个结点可以存放一个字符,也可以存放多个字符。例如,图中(a)所示为结点大小为4 (即每个结点存放4个字符)的链表,图中(b)所示为结点大小为1的链表。当结点大小大于1时,由于串长不一定是结点大小的整倍数, 则链表中的最后一个结点不一定全被串值占满,此时通常补上“#”或其他的非串值字符(通常“#”不属于串的字符

2020-10-22 10:05:47 2643 4

原创 十进制转换任意进制--链栈实现

首先,先了解一下c语言const用法:修饰局部变量,int const a = 9; const int b = 8;这两种写法是一样的,表示a和b都是常量,不可改变。需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了。完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>const char f[]="0123456789ABCDEF";//定义一个全

2020-10-22 09:31:30 1366 2

原创 十进制转换二进制--栈实现

C语言十进制转换二进制,用顺序栈实现。完整代码如下:#include <stdio.h>#include <stdlib.h>#define MAXSIZE 20 //静态顺序栈存储的最大空间 typedef struct{ int data[MAXSIZE];//静态顺序栈可用的最大容量 int top;//栈顶}SqStack;void InitStack(SqStack &S)//栈的初始化 { S.top = -1;//静态顺序栈中,使S

2020-10-22 08:36:57 8895

原创 C语言动态顺序串实现--KMP算法

数据结构C语言动态顺序串,相比于静态顺序串只是多了能增加最大容纳量函数的操作。#include <stdio.h>#include <stdlib.h>#include <string.h>#define StrSize 20 //动态顺序串当前最大长度 typedef struct{ char *ch;//数据域 int length;//串长 int MaxSize;//最大容量 }SString;void InitSt

2020-10-20 15:54:12 396 1

原创 C语言顺序串--BF算法

数据结构C语言静态顺序串代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAXSIZE 50 //静态顺序串的最大容纳量 typedef struct{ char ch[MAXSIZE];//数据域 int length;//串长 }SString;void InitString(SString &S)//初始化串,静态顺序串中,只让串

2020-10-20 15:44:12 1038

原创 数据结构 队列的实现--链式

数据结构c语言链式队列的实现与表示代码如下:#include <stdio.h>#include <stdlib.h>typedef struct QNode{ int data; struct QNode *next;}QNode,*QueuePtr;typedef struct{ QueuePtr front;//队头指针 QueuePtr rear;//队尾指针 }LinkQueue;void InitQueue(LinkQueue &

2020-10-10 18:06:59 121

eclipse4.8-win32.zip

eclipse,window32位。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。简单的理解是eclipse是java编辑器。

2021-01-07

jdk1.7.0-win32位.rar

jdk:java开发工具。这里是win32位。JDK这是Java Development Kit 缩写,中国被称为Java开发套件。由SUN该公司提供。这是Java应用程序开发提供了编译和执行环境,所有的Java写程序都依赖于它。

2020-12-05

eclipse-win32位 java编辑器

eclipse,window32位。Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。简单的理解是eclipse是java编辑器。

2020-12-05

空空如也

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

TA关注的人

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