- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 Xming显示远程服务器GUI的最简单配置
官方下载最新版的Xshell和Xming,直接默认安装配置即可。Xming 可以去下载免费版:https://xming.en.softonic.com/download Xshell 6个人免费版:https://www.netsarang.com/download/free_license.html1. 使用Xshell连接到远程服务器,修改X11Forwarding 改为为“yes”,如被#注释,需取消注释。vi /etc/ssh/sshd_config2. 修改Xshell连.
2022-05-11 11:01:21 7574 3
原创 快速排序算法
思想:采用分治的思想,在数组中选取一个基准元素(一般取第一个元素),将比它大的元素交换到基准的右侧,比它小的元素交换到基准的左侧,这样就完成了一轮次的排序,该基准元素就被放到了合适的位置。然后采用递归的方法对基准元素左侧和右侧的子序列进行再次排序,直至序列不再可分为止。实现代码:#include<iostream>using namespace std;int Paritition1(int arr[], int low, int high){ int pivot = a
2021-10-22 19:51:17 142
原创 插入排序算法
基本思想:将待排序元素与已排序元素从最右侧比较大小,找到比待排序元素小的元素,插入到其后面成为已排序元素。实现代码void insert_sort(std::vector<int> &arr){ for(int i=1; i < arr.size(); i++) { int temp = arr[i];//待排序元素 int j=i-1; for(; j >=0; j--)
2021-10-17 18:00:32 79
原创 选择排序算法
基本思想:在一次遍历中选出本轮中的最大或者最小值,放到最右边,下次遍历时不再遍历最后一个元素。实现代码#include "select_sort.h"#include <algorithm>void select_sort(std::vector<int> &arr){ for(int i=0; i <arr.size(); i++) { int min_index=i, max_index = i; f
2021-10-17 17:02:10 67
原创 冒泡排序算法
视频链接:轻松搞定十大经典排序算法(冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序、计数排序、桶排序和基数排序)_哔哩哔哩_bilibili基本思想:从左到右相邻两个元素进行比较大小将最大的交换到最右侧,改进方法为添加标志位,如果当前轮次没有发生元素交换,则证明数组已经有序,终止排序。实现函数代码(基于C++ std标准库实现)void bubble_sort(std::vector<int> &arr){ for(int i=0; i <
2021-10-17 12:01:54 94
原创 CMakeLists.txt
project(bubble_sort)AUX_SOURCE_DIRECTORY(src DIR_SRCS)include_directories(include)add_executable(${PROJECT_NAME} ${DIR_SRCS})
2021-10-17 11:44:48 79
转载 C++删除文件
使用remove函数删除本地文件: 头文件:#include <stdio.h> //C #include <cstdio> //C++ 函数原型:int remove(const char * filename); 返回结果:如果成功返回 0,失败返回“EOF”( -1)。代码示例:#include<iostream>#include<cstdio>using namespace std;int..
2021-09-15 16:22:05 24281
原创 ROS学习笔记-创建工作空间与功能包
工作空间是一个存放工程开发相关文件的文件夹,主要分为4个文件夹。src: 代码空间,主要存放功能包的源代码build: 编译空间, 主要存放编译过程中产生的中间文件devel: 开发空间,主要存放编译生成的可执行文件、库等install: 安装空间,存放开发完成后的安装包,与devel有些重复,Ros2中去除了这个空间build和devel通过catkin_make命令自动创建,install 文件夹由 catkin_make install 命令自动创建。创建工作空间
2021-09-02 23:54:46 111
原创 C++函数
1.函数的默认参数语法:返回值类型 函数名 (参数 = 默认值){ }注意事项:(1)如果某个位置已经有了默认参数,那么从这个位置往后,都必须有默认参数(2)声明和实现只能一个有默认参数,声明和实现均含有默认参数,编译器将不知道按照哪个默认参数操作,编译会报错代码示例:#include<iostream>#include<vector>#include<array>using namespace std;// 如果未传入数据...
2021-08-02 09:52:51 80
原创 C++中的引用
目录1.引用的基本作用2.引用的注意事项3.引用做函数参数4.引用做函数的返回值5.引用的本质6.常量引用1.引用的基本作用作用:给变量起别名语法:数据类型 &别名 = 原名int a = 10;int &b = a;2.引用的注意事项引用必须要初始化int &b; // 未初始化,错误引用初始化后不能发生更改3.引用做函数参数作用:函数传参时,可以用引用技术让形参修饰实参优点:可以简化指针修饰实参代码示例
2021-08-02 00:39:49 180
原创 C++程序的内存模型
1. 内存分区模型C++程序执行时,将内存划分为4个区域:代码区:存放函数体的二进制代码,由操作系统进行管理。全局区:存放全局变量和静态变量及常量。栈区:由编译器自动分配释放,存放函数的参数(局部变量),局部变量等。堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。不同区域存放的数据,赋予不同的生命周期。程序运行前程序编译后,生产了exe可执行程序,未执行该程序前分为两个区域:代码区:存放CPU执行的机器指令。 代码是共享的,共享...
2021-08-01 16:59:52 277
原创 C++结构体基本知识
1. 结构体基本概念用户自定义的数据类型,用于存储不同的数据类型。2. 结构体的定义和使用语法:struct 结构体名 {结构体成员列表};通过结构体创建变量的三种方式:Struct 结构体名 变量名Struct 结构体名 变量名 = {成员1值,成员2值,…}定义结构体时顺便创建变量下面通过代码来说明#include<iostream>#include<vector>#include<array>using namespace
2021-08-01 16:21:19 408
原创 C++指针基础知识总结
1. 指针的定义和使用方式int a = 10;int *p = &a;*p = 100;2. 指针所占的内存空间32位系统为四个字节(无论指向的数据类型是什么), 64为系统为8个字节。3. 空指针int* p = NULL;int* p = nullptr;4. 野指针int* p = (int *)0x0100 //直接指向特定的地址,会报错。5. const 修饰指针(1) const int *p 常量指针(const在前,*在后),指针的.
2021-07-31 00:04:30 413
转载 时间复杂度和空间复杂度
一、时间复杂度大O符号表示法 ,在 大O符号表示法中,时间复杂度的公式是: T(n) = O( f(n) ),其中f(n) 表示每行代码执行次数之和,而 O 表示正比例关系,这个公式的全称是:算法的渐进时间复杂度。常见的时间复杂度量级有:常数阶O(1) 对数阶O(logN) 线性阶O(n) 线性对数阶O(nlogN) 平方阶O(n²) 立方阶O(n³) K次方阶O(n^k) 指数阶(2^n)上面从上至下依次的时间复杂度越来越大,执行的效率越来越低。1.常数阶O(1)无论代
2021-07-22 16:56:47 205
原创 pytorch 使用AlexNet实现Mnist手写数字识别
AlexNet网络框架如下:AlexNet的原始输入图片大小为224*224,Mnist数据集中图片大小为28*28,所以需要对网络参数进行修改。先掉用train函数进行训练,训练好的参数会保存在params.pth文件中,训练好使用本地图片(画图软件生成)进行测试。完整程序如下:import torchimport torchvision as tvimport torchvi...
2020-03-16 16:23:02 6460 18
原创 pytorch实现个人手写数字识别
网上的大多数例子都是基于Mnist数据集进行测试的,今天实现一个自己手写数字的识别。首先训练模型,使用Mnist数据集,网络的backbone采用LeNet。1. 导入需要的模块并添加GPU设备import torchimport torchvision as tvimport torchvision.transforms as transformsimport torc...
2020-03-15 21:14:27 983
原创 使用numpy实现一个简单的2层神经网络
import numpy as npdef main(): # 2层神经网络,64个输入1000维,1个隐藏层100维,输出10维 N, D_in, H, D_out = 64, 1000, 100, 10 # 随机初始化样本 x = np.random.randn(N, D_in) y = np.random.randn(N, D_out) ...
2020-02-21 19:06:06 473
原创 链接器脚本学习
基本构成:段 程序通常是由:代码段,数据段,bss段构成的。 其中数据段存放的是初始化后的前期变量,bss段存放的是没有初始化的前期变量。 在用于链接这个程序的链接器脚本中,就会反映出这几个段的信息。后缀名为 .ldsSECTIONS{ . = 0x30000000; //代码段的起始链接地址 . = ALIGN
2018-01-24 21:17:33 130
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人