Java从入门到入坟
Java的重要特点1.Java语言是面向对象的 oop
2.Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
3.Java语言是解释型的。
4.Java是跨平台性的。
你的第一个Java程序”Hello world!”首先用你的编译器新建一个java文件,现在想办法输出Hello world!
123456public class Hello {//此处Hello的位置应当与,文件名 'xxx.java' 中的 xxx一致 //编写一个main的方法 public static void main(String[] args) {//主方法,即程序的入口 System.out.println("hello world"); }}
老规矩,新语言,还是逐行解释
1.public class Hello表示Hello是一个共有的类
2.Hello{}表示一个类的开始和结束
3.public static v ...
算法入门
排序sort()推荐直接使用本函数,无后顾之忧,在使用之前,需要调用头文件<algorithm>
它有三个参数sort(begin, end, cmp),其中begin为指向待sort()的数组的第一个元素的指针,end为指向待sort()的数组的最后一个元素的下一个位置的指针,cmp参数为排序准则,cmp参数可以不写,如果不写的话,默认从小到大进行排序。如果我们想从大到小排序可以将cmp参数写为greater<int>()就是对int数组进行排序,当然<>中我们也可以写double、long、float等等。如果我们需要按照其他的排序准则,那么就需要我们自己定义一个bool类型的函数来传入。在对结构体排序时,经常会用到自己写一个排序规则。
写法如下
12345678int cmp(int x,int y){ return x>y;}int main(){ sort(a,a+n,cmp);}
当然,工作室不乏有变态要求手写排序,接下来有几个排序的代码可以看一下。
快速排序12345678910 ...
哈理工新生问题集锦
Q: 宿舍是上床下桌吗?
是
Q: 宿舍人数如何?
阳面6人,阴面4人。实际体验下来(潮的时候都潮,但阴面夏天的时候会稍微凉快一点)
Q: 教室和宿舍有没有空调?
没有
Q: 有独立卫浴吗?没有独立浴室的话,澡堂离宿舍多远?
没有,澡堂离宿舍不算太远,走路7、8分钟
Q: 有早自习、晚自习吗?
有晚自习晚六点到八点(大一),外语有早自习(大悲)
Q: 有晨跑吗?
有(大一)早6点半(早操和自习不要不去哦,可能会有一定的影响,建议问问自己的直系学长/姐)
Q: 每学期跑步打卡的要求是多少公里,可以骑车吗?
没有,可以骑车
Q: 寒暑假放多久,每年小学期有多长?
暑假一个半月,寒假时间长,没有小学期
Q: 学校允许点外卖吗,取外卖的地方离宿舍楼多远?
允许,就在宿舍楼旁边
Q: 学校交通便利吗,有地铁吗,在市区吗,不在的话进城要多久?
便利,没有地铁,出门有公交,离市区不远。
Q: 宿舍楼有洗衣机吗?
有,一层一个,记得备好消毒液/粉。
Q: 校园网怎么样?
有校园卡(手机卡,与之后的实体卡不同),但就是一个流量包,速度还算凑活,校园网一般在机房、教室或者实验室里会用 ...
数据结构(四)图
图(Graph)图也是由多个结点连接而成的,但是一个结点可以同时连接多个其他结点,多个结点也可以同时指向一个结点,跟我们之前讲解的树结构不同,它是一种多对多的关系:
它比树形结构更加复杂,没有明确的层次关系,结点与结点之间的连接关系更加自由,图结构是任意两个数据对象之间都有可能存在某种特定关系的数据结构。
基本概念在了解之前,最好优先学习一下离散数学。
如果离散数学已经有一定基础的话,本段可以跳过。
图一般由两个集合共同构成,一个是非空但是有限的顶点集合V(Vertex),另一个是描述顶点之间连接关系的边集合E(Edge,边集合可以为空集,比如只有一个顶点的),一个图实际上正是由这些结点(顶点)和对应的边组成的。因此,图可以表示为:$G=$
学过离散数学的我们可以很清楚的知道。一个图我们可以表示为,集合$V={A,B,C,D,E}$,集合$E=\{(A,B),(B,C),(C,D),(D,A),(C,A)\}$,图有两种基本型式,有向图和无向图。
每个结点的度就是与其连接的边数,每条边是可以包含权值的,当前也可以不包含。
当然我们也可以将其表示为有向图,集合$V={A,B,C, ...
数据结构(三)-- 树
树形结构树与森林树时一种新的数据结构,像一颗树一样,有很多的分枝,并且会不一段延伸。只要不断前进,道路就会不断延伸。
树结构介绍(Tree)
可以看到,现在一个结点下面可能会连接多个节点,并不断延伸,就像树枝一样,每个结点都有可能是一个分支点,延伸出多个分支,从位于最上方的结点开始不断向下,而这种数据结构,我们就称为树(Tree)注意分支只能向后单独延伸,之后就分道扬镳了,不能与其他分支上的结点相交!
根节点(Root):位于最上方的结点,整棵树都是从这里开始延伸出去的
度(Degree):每个节点连接的子节点的数目(分支的数目)。而各个结点中度的最大值称为树的度。
子树(SubTree):每个结点所延伸的子结点,都可以称为是一个子树。比如结点B及其之后延伸的所有分支合在一起,就是一棵A的子树。
层次(Level):按照从上到下的顺序,树的根节点为1,每向下一层+1,因此G的层次就为3。
深度(Depth):整棵树中所有结点的最大层次,就是这棵树的深度。本棵树的深度就为4。
因为树成长之后会显得错综复杂,所以要规定一下,结点与结点之间的称呼。
子结点(Child):与当前节点直接 ...
数据结构(二)—— 线性表
线性表(Linear List)在使用数组是,你是都有插入一个数据,或者删改一个数据的烦恼?那么来试试线性表吧
拥有的功能
初始化线性表:将一个线性表进行初始化,得到一个全新的线性表
获取指定位置上的元素:直接获取线性表指定位置i上的元素
获取元素的位置:获取某个元素在线性表上的位置i
插入元素:在指定位置i上插入一个元素
删除元素:删除指定位置i上的元素
获取长度:返回线性表的长度
那么怎么实现这些功能呢?
我们一般有两种解决方式:
顺序存储实现(顺序表)
链式存储实现(链表)
顺序表前面我们说到,既然数组无法实现这样的高级表结构,那么我就基于数组,对其进行强化,也就是说,我们存放数据还是使用数组,但是我们可以为其编写一些额外的操作来强化为线性表,像这样底层依然采用顺序存储实现的线性表,我们称为顺序表。
可以先定义一个新的类或结构体类型,将一些需要用到的数据保存在一起,这里我们以int类型的线性表为例:
定义与初始化1234567891011#include <iostream>using namespace std;const int MAX_SIZE = 1 ...
数据结构(一)—— 复杂度问题
时间复杂度在学习时间复杂度之前我们先了解一下常数操作。
常数时间操作基本概念一个操作如果和样本的数据库量没有关系,每次都是固定时间内完成的操作,叫做常数操作。
概念模糊难懂,拿来举一些🌰。
首先是数组的寻址,一个常数操作的时间复杂度。
1int a = arr[i];
我们熟悉的四则运算+ - * /这些也都是常数操作。
12a+b;a-b;
链表的寻址操作就不是一个常数操作的时间复杂度,因为寻址时会连续调用之前的内容。
1int b = list.get[i];
时间复杂度在常数操作的表达式中,忽略低阶项,只要最高阶,且忽略高阶系数。如果剩下的部分为f(N)则时间复杂度为:
O(f(N))直接看概念很恶心不如直接上例子
那这里举一个大家都知道的选择排序,选择排序的机制时,依次遍历从头开始的数字,找到最小的数,与之交换位置。来画一张图,假设数组中有N个元素。
img
可能会有疑问啊,O是什么意思呢?
在数学中O所指的是最大上限。
平均时间复杂度和最好时间复杂度在学习计算机时,以下两者,并不会经常使用,仅供参考。
平均时间复杂度θ()
最好时间复杂度Ω()
时间复杂度的比较第一种, ...
C#核心-多态
多态vob多态的概念说人话就是“多种状态”
让继承同一父类的子类们,在执行相同方法是有不同的表现(状态)
主要目的同一父类的对象执行相同的方法,会有不同的表现。因此这样可以让同一的对象有唯一行为的特征
解决的问题1234567891011121314151617181920212223242526272829using System;namespace vob{ class Father { public void SpeakName() { Console.WriteLine("Father的方法"); } } class Son:Father { public new void SpeakName()//覆盖父类的方法 { Console.WriteLine("Son的方法"); } } ...
深度学习入门(一)猫狗识别
本次猫狗识别参考的是余~意大佬写的详解pytorch实现猫狗识别来实现的,主要是通过代码去学习损失函数、数据加载等知识点的实际应用,和权重,学习率等对最后准确率的影响。
期望实现的目标
实现随机抽取9张测试集中的图片,通过模型来预测出结果 (已实现)
使用的数据集数据集采用两万五千张图片(未经筛选前),来源于kaggle官网,下载来源dogsVScats | Kaggle
代码的主要流程
定义数据预处理的方法(包括图像增强、缩放、裁剪、翻转、标准化等)。
构建数据集(包括训练集和测试集)。
定义模型(使用预训练的 ResNet-50 网络结构,并替换最后一层的全连接层)。
定义损失函数和优化器。
进行模型训练,设置训练轮数和训练阶段(训练或测试),计算每个阶段的损失率和正确率。
保存模型参数。
从测试集中随机抽取9张图片,并用训练好的模型对这9张图片进行预测。
在 Matplotlib 中显示这9张图片和它们的预测结果。
定义数据处理方式: 通过transforms定义了针对训练集和测试集的数据处理方式,包括随机裁剪、缩放、随机水平翻转、标准化等。
1234567891011121 ...
C#核心-继承
继承的基本规则基本概念继承的基本概念就是,一个类A继承一个类B,类A将会继承类B的所有成员和所有的特征和行为
被继承的类:父类,基类
继承的类:子类,派生类
子类可以有自己的特征和行为
特点:1.单根性 子类只能有一个父类
注意:C#中没有C++的多继承!!!
2.传递性 子类可以简介继承父类的父类
基本语法C#的继承和C++的类似,都是通过使用:来实现。
1234class 类名 : 被继承的类名{ }
实例12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455using System;using System.Runtime.InteropServices;namespace Homework{ class Teacher { //姓名 public string name; //职工号 public int number; ...