- 博客(47)
- 收藏
- 关注
原创 数值型数据的 NB 算法
学习来源:日撸 Java 三百行(51-60天,kNN 与 NB)第 59 天: 数值型数据的 NB 算法前面学习了符号型数据的 NB 算法,今天学习的是数值型数据的 NB 算法。数据集:@RELATION iris@ATTRIBUTE sepallength REAL@ATTRIBUTE sepalwidth REAL@ATTRIBUTE petallength REAL@ATTRIBUTE petalwidth REAL@ATTRIBUTE class {Iris-setosa
2022-05-11 17:01:38 345
原创 符号型数据的 NB 算法
学习来源:日撸 Java 三百行(51-60天,kNN 与 NB)第 58 天: 符号型数据的 NB 算法朴素贝叶斯算法(Naive Bayes,NB)是一种是基于贝叶斯定理与特征条件独立假设的分类算法。算法思想:算法步骤:代码:运行截图:...
2022-05-09 20:52:09 1072
原创 kMeans 聚类
学习来源:日撸 Java 三百行(51-60天,kNN 与 NB)第 56 天: kMeans 聚类算法思想:算法步骤:代码:运行截图:
2022-05-06 21:16:26 534
原创 KNN 分类器
学习来源:日撸 Java 三百行(51-60天,kNN 与 NB)第 51 天: KNN 分类器K个最近邻法(K-Nearst-Neighbor,KNN),解决监督学习中的分类问题。算法思想:如果一个实例在特征空间中的K个最相似(即特征空间中最近邻)的实例中的大多数属于某一个类别,则该实例也属于这个类别。所选择的邻居都是已经正确分类的实例。(即未标记样本的类别由距离其最近的K个邻居投票来决定)距离衡量方法:曼哈顿距离:欧式距离:K值的选择:K值选择是KNN算法的关键,对近邻算法的结果有
2022-05-04 21:34:35 825
原创 Java(17)
学习来源2:日撸 Java 三百行(41-50天,查找与排序)第 42 天: 哈希表使用 (最简单的) 除数取余法获得数据存放地址 (下标)。使用 (最简单的) 顺移位置法解决冲突。搜索的时间复杂度仅与冲突概率相关, 间接地就与装填因子相关。如果空间很多,可以看出时间复杂度为 O(1)。输入:输入整型数组tempUnsortedKeys和字符数组tempContents构造数据数组tempDataArray输出:通过哈希表查找指定key的元素中的内容content优化目标:无 /** *
2022-05-01 11:43:53 575
原创 Java(16)
学习来源:日撸 Java 三百行(31-40天,图)第 39 天: 关键路径 public boolean[] criticalPath() { int tempValue; int[] tempInDegrees = new int[numNodes]; for (int i = 0; i < numNodes; i++) { for (int j = 0; j < numNodes; j++) { if (weightMatrix.getValue(i, j)
2022-04-29 13:11:59 843
原创 Java(15)
学习来源:日撸 Java 三百行(31-40天,图)第 37 天: 十字链表package my_java;/** * @Description: Orthogonal List for directed graph. * @author: Xin-Yu Li * @date: 2022年4月25日 */public class OrthogonalList { class OrthogonalNode { int row; int column; OrthogonalNo
2022-04-27 11:44:45 102
原创 Java(14)
学习来源:日撸 Java 三百行(31-40天,图)第 35 天: 图的 m 着色问题经典的回溯算法,万能的暴力解题法。输入:输入整型二维矩阵构造图输出:输出从指定结点开始广度优先遍历的序列优化目标:无 /** * @Description: Coloring. * @param paraNumColors The number of colors. */ public void coloring(int paraNumColors) { // Step 1. Initial
2022-04-25 16:54:44 378
原创 Java(13)
学习来源:日撸 Java 三百行(31-40天,图)第 33 天: 图的广度优先遍历 /** * @Description: Breadth first traversal. * @param paraStartIndex The start index. * @return The sequence of the visit. */ public String breadthFirstTraversal(int paraStartIndex) { CircleObjectQueu
2022-04-23 15:18:26 365
原创 Java(12)
学习来源:日撸 Java 三百行(31-40天,图)第 31 天: 整数矩阵及其运算输入:输入多个整数构造整数矩阵tempMatrix1输出:输出tempMatrix1、tempMatrix1自乘运算得到的新矩阵tempMatrix2、tempMatrix2的单位矩阵tempMatrix3再加上tempMatrix1所得到的矩阵优化目标:无package my_java;import java.util.Arrays;/** * @Description: Int matrix. *
2022-04-21 16:01:05 453
原创 Java(11)
学习来源:日撸 Java 三百行(21-30天,树与二叉树)第 28 天: Huffman 编码 (节点定义与文件读取)输入:输入表示文本文件的字符串paraFilename输出:构造对象tempHuffman并输出文本文件的内容inputText优化目标:无ps:每个节点的内容包括:字符 (仅对叶节点有效)、权重 (用的整数,该字符的个数)、指向子节点父节点的引用。package my_java;import java.nio.charset.StandardCharsets;impor
2022-04-19 20:20:43 446
原创 Java(10)
第 26 天: 二叉树深度遍历的栈实现 (前序和后序)前序与中序的区别,仅仅在于输出语句的位置不同。如果将前序的左右子树互换,就可得到中右左;再进行逆序,可以得到 2) 左右中。因此, 要把前序的代码改为后序,需要首先将 leftChild 和 rightChild 互换,然后用一个栈来存储需要输出的字符,最终反向输出即可。...
2022-04-17 14:13:34 392
原创 Java(9)
学习来源:日撸 Java 三百行(21-30天,树与二叉树)第 24 天: 二叉树的建立输入:输入字符数组tempCharArray和整型数组tempIndicesArray构建二叉树输出:输出该二叉树前序、中序、后序遍历序列以及各结点的链接情况优化目标:无思路:只增加了一个构造方法,相当于第 22 天的逆过程。构造方法中使用一个线性表先分配所有节点的空间,再将节点链接起来。最后并没有返回,而是把第0个节点的相应值拷贝给自己。ps:在Java中对非基本数据初始化时,必须使用new。在使用new创
2022-04-15 15:29:26 942
原创 Java(8)
1. 二叉树的深度遍历的递归实现输入:输入多个字符构建二叉树输出:输出该二叉树前序、中序、后序遍历序列以及二叉树的深度、总结点数。优化目标:无package my_java;/** * @Description: Binary tree with char type elements. * @author: Xin-Yu Li * @date: 2022年4月13日 */public class BinaryCharTree { char value; BinaryCharTre
2022-04-13 14:56:25 380
原创 Java(7)
1.链队列(含头结点)输入:输入多个整型数在队尾进行入队操作输出:循环输出队内元素优化目标:无package my_java;/** * @Description: LinkedQueue. * @author: Xin-Yu Li * @date: 2022年4月11日 */public class LinkedQueue { class Node { int data; Node next; /** * @Description: The constructo
2022-04-11 16:48:48 226
原创 Java(5)
1、布尔类型布尔类型是表示逻辑状态的类型。java语言通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。2、闰年计算package my_java;/** * @Description: The complex usage of the if statement. * @author: Xin-Yu Li * @date: 2022年4月5日 */public class LeapYear { public static
2022-04-07 19:40:20 432
原创 Java(4)
1、遍历数组Java为遍历数组提供了很方便的工具类Arrays,Arrays.deepToString()和Arrays.toString()就是遍历数组的方法。Arrays.deepToString()主要用于数组中还有数组的情况(即多维数组,包括二维数组);而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来。Arrays.toString()一般用于打印一维数组。2、矩阵元素相加package
2022-04-05 20:14:38 757
原创 Java(3)
1、注释方法java一共有三种注释方法:单行注释:以双斜杠“//”标识,只能注释一行内容,用在注释信息内容少的地方。多行注释:包含在“/”和“/”之间,能注释很多行的内容。为了可读性比较好,一般首行和尾行不写注释信息。文档注释:包含在“/**”和“*/”之间,也能注释多行内容,一般用在类、方法和变量上面,用来描述其作用。三种注释方法的快捷键:单行注释:选中区域+alt+/ ,取消注释同样是这个快捷键多行注释:选中区域+Ctrl+shift+/ ,取消注释是选中区域+Ctrl+shift+文档
2022-04-03 17:21:46 216
原创 Java(2)
1、public和privatepublic和private是访问权限修饰符,用于控制外界对类内部成员的访问。public:表明对象成员是完全共有的,外界可以随意访问。private:表明对象成员是完全私有的,不容许外界的任何访问。2、staticstatic静态成员修饰符,其修饰的静态变量脱离具体对象独立存在,在内存中之后一份拷贝,所有的对象都公用这一个存储空间,所以对static修饰的静态变量进行的修改对该类的所有对象都起作用。static修饰的静态函数代表所有对象的统一操作,只能调用静态变量
2022-04-01 12:30:55 301
原创 Java(1)
1、packagepackage包是class类的命名空间,用来唯一标识这个类的,避免类的名字重复(包可以理解成创建文夹)。不同package中的类的名字可以相同,只是在使用时要带上package的名称加以区分。2、importJava引入了import关键字来实现包的导入这个功能,import可以向某个Java文件中导入指定包层次下的某个类或全部类。所谓导入这个包里面的所有类,就是在import声明这个包名以后,在接下来的程序中可以直接使用该包中的类。因此import 的作用很简单,就是省略包名,减
2022-03-30 19:31:03 135
原创 C语言(二十六)
总结:今天没有练习代码,想对这一段时间的学习做个总结。通过这一段时间的学习,我回顾了c语言的基础知识,并能很好地完成大部分c语言题。单纯的数学问题解答主要是靠自己捋清思路,只要思路清晰了,写代码就比较容易。当涉及到数据结构的内容时,就要难一些了。经过数据结构知识的学习以及相关代码的练习,我对线性表(顺序表、链表)、栈(顺序栈、链栈)、队列(循环队列)以及二叉树等结构有了深入的认识,能解决与之有关的问题(“树的本质是递归”,学习过程中看到的一句话,觉得很凝练)。但是对于图,我任有欠缺。对于图的知识掌握得还
2022-03-29 22:06:42 1140
原创 C语言(二十五)
1、冒泡排序数组存储:输入:输入长度为N的整型数组arr输出:输出arr冒泡排序后的升序序列优化目标:提高效率#include <stdio.h>void BubbleSort(int arr[],int len){ int i,j; for(i=0;i<len-1;i++){//一共n-1轮 int flag=0; for(j=n-1;j>i;j--){ if(arr[j-1]>arr[j]){ //前一个比后一个大 int te
2022-03-25 22:21:30 1822
原创 C语言(二十三)
1、输出倒三角图案本题要求编写程序,输出指定的由“*”组成的四行倒三角图案。输入:无输出:输出四行倒三角图案优化目标:无#include <stdio.h>int main(){ for (int i=4;i>0;i--) { for (int j=i;j<4;j++)printf(" ");//负责打印空格的,空格依次0 1 2 3个 for (int k=1;k<=i;k++) { printf("*");//打印* if (k!=
2022-03-23 18:54:41 1359
原创 C语言(二十二)
1、高空坠球皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入:输入两个长整型数h和n输出:顺序输出皮球第n次落地时在空中经过的距离d、以及第n次反弹的高度h2优化目标:无#include<stdio.h>#include<math.h>int main(){ int h,n; int i=1; double d=0,h2=0,sum=0; sca
2022-03-22 21:35:58 2752 2
原创 C语言(二十)
1、数组循环右移本题要求实现一个对数组进行循环右移的简单函数:一个数组a中存有n(>0)个整数,将每个整数循环向右移m(≥0)个位置。输入:输入长度为n的整型数组a和右移位数m输出:输出移动后的数组a的序列优化目标:无#include <stdio.h>#define MAXN 10void ArrayShift( int a[], int n, int m );int main(){ int a[MAXN], n, m; int i;
2022-03-20 17:50:51 4032
原创 C语言(十八)
1、大小写字母转换#include <stdio.h>void toupper(char a[]);int main(){ char a[50]; scanf("%s", a); toupper(a); printf("%s", a);}void toupper(char a[]){ int i=0; while(a[i]!='\0'){ if('a'<=a[i]&&a[i]<='z'){ a[i]=a[i]-32; } i++
2022-03-18 21:32:20 879
原创 c语言(十七)
栈的应用1、括号匹配输入:输入一串字符串str输出:输出字符串str中的括号是否匹配优化目标:无#include<stdio.h>#define MaxSize 50 typedef struct Stack{ char data[MaxSize]; int top;}Stack,*pStack; void Init_stack(pStack); //初始化 int Push(pStack,char); //入栈int Pop(pStack); //出栈
2022-03-17 18:55:03 966
原创 C语言(十六)
顺序表:输入:输入整型数创造顺序表输出:输出顺序表各种操作优化目标:无#include<stdio.h>#include<malloc.h>#define ElemType int #define MaxSize 100 //顺序表的最大长度typedef struct{ ElemType *data; //存储空间基址 int length;}SqList;//初始化顺序表,创建一个空表SqList* InitList(){ //申请内存
2022-03-16 21:02:40 1202
原创 C语言(十五)
递归:1、弹球距离设有一个球从高度为h米的地方落下,碰到地面后又弹到高度为原来p倍的位置,然后又落下,再弹起,再落下…。请编写函数求初始高度为h的球下落后到基本停下来(高度小于给定阈值TOL)时在空中所经过的路程总和。注意:当弹起的高度小于裁判程序定义的常数TOL时,弹起的距离不计算在内。输入:输入球的初始高度h和球弹起高度与弹起前落下高度的比值p输出:输出球下落后到基本停下来时在空中所经过的路程总和dist优化目标:无#include <stdio.h>#define TOL 1
2022-03-15 15:49:54 4124
原创 C语言(十三)
二叉树:#include <stdio.h>#include <stdlib.h>typedef struct BTNode{ int data; struct BTNode *lchild; struct BTNode *rchild;}BTNode,*BTree;BTree CreatBTree();//前序遍历生成二叉树void PrtOrderTraverse(BTree T);//前序遍历二叉树void InOrderTraver
2022-03-13 15:11:14 1259
原创 C语言(十二)
1、共享后缀的链表有一种存储英文单词的方法,是把单词的所有字母串在一个单链表上。为了节省一点空间,如果有两个单词有同样的后缀,就让它们共享这个后缀。本题要求你找出两个链表的公共后缀。输入:输入整形数创造两个链表L1、L2。输出:输出两个链表的公共后缀p。优化目标:无。思路:同样运用到了快慢指针的思想,首先求出链表L1的长度len1和链表L2的长度len2,若len1>len2,令p1指向链表L1中的第len1-len2+1个结点,令p2指向链表L2中的第1个结点,然后将指针P1和p2
2022-03-12 14:42:13 1758 1
原创 C语言(十一)
1、在单链表实现约瑟夫环2、单链表冒泡排序ps:将冒泡排序与链表两者结合考察,是一个重点。3、查找单链表的中间节点4、共享后缀的链表有一种存储英文单词的方法,是把单词的所有字母串在一个单链表上。为了节省一点空间,如果有两个单词有同样的后缀,就让它们共享这个后缀。本题要求你找出两个链表的公共后缀。思路:首先求出len1和len2,若len1>len2,令p1指向链表中的第len1-len2+1个结点,,然后将指针P1和p2同步向后移动,直到P1和p2指向同一结点总结:今天练习了链表的经典
2022-03-11 16:16:15 904
原创 C语言(十)
二叉排序树:1、二叉排序树的创建输入:输入长度为10的一维整形数组arry。二叉树的结构体变量为BiTree &T,其成员有int data(用于存储二叉树结点的值);struct BiNode *lchild, *rchild;(两个二叉树结点指针分别二叉树的左孩子和右孩子)。输出:无输出。思路:二叉排序树的创建是通过多次调用二叉排序树的插入函数来实现的。二叉排序树的插入是在查找过程中,当树中不存在查找关键字值等于给定的待插入结点时再进行插入的。#include <std
2022-03-10 19:10:59 539
原创 C语言(九)
排序二:给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。输入:输入长度为N的一维整形数组arr。输出:输出从小到大排序后的结果。1、快速排序时间复杂度:O(nlog2n)稳定性:不稳定优化目标:暂无#include <stdio.h>void QuickSort(int arr[],int left,int right){ if(left<right){ int i=left; int j=right; int key=arr[left
2022-03-09 21:55:51 251
原创 C语言(八)
排序:给定N个(长整型范围内的)整数,要求输出从小到大排序后的结果。输入:输入正整数N,以及N个(长整型范围内的)整数。输出:输出从小到大排序后的结果。1、直接插入排序时间复杂度:O(n^2)稳定性:稳定#include <stdio.h>void InsertSort(int arr[],int len){ int i,j,key; for(i=1;i<len;i++){ key=arr[i]; //记录当前需要插入的数据 for(j=i-1;j&
2022-03-08 21:20:10 451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人