自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Nemoxy的博客

随行笔记,,,

  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 Vulkan 学习笔记:创建Window

用windows.h创建简单窗口,供vulkan调用

2022-11-01 17:23:28 336 1

原创 Vulkan 学习笔记:Command Buffers

用semaphore做不同gpu command buffer间的同步。多个command buffer

2022-10-31 19:52:14 317

原创 2022.07.20 NDK OpenGL ES 3.0 :画个三角形,纹理贴图(刚入门就入土)

基于NDK实现OpenGL ES在Android上画三角和贴texture,IDE使用Android Studio。

2022-07-20 17:06:26 1968 3

原创 2021 CMU DB 15-445: [Project2] Hash Index

做了11天,思路不难,就是小错误恶心人。建议以后所有lab快点写出来,然后花3~4倍时间debug…主要说一下3个部分写点啥,directory与bucket在整体哈希表中作用是什么,还有一些坑点。hash_table_directory_page一个directory是一个Pagedirectory_page的key-to-bucket_page_id原理directory的作用是根据key的hash找到对应的bucket_page对象,再进行其他serach or insert otr rem

2022-05-16 21:22:13 829

原创 2021-08-31 C++: 虚继承下array new / delete 的内存管理

以下实验基于VS2015, win32环境array new出来的对象,能否用父类指针能否调用子类虚函数?如果父类大小 * 元素数目 = 子类大小 * 元素数目,就可以,否则不行。#include "stdafx.h"#include <iostream>using namespace std;class A {public: int x{ 10 }; virtual void PrintVal(int a = 1) { cout << x + a <&l

2022-04-27 14:41:27 2030

原创 2021.08.11 CMU DB 15-445: [Project1] buffer pool

Build流程进入bustub文件夹。先装所有可能用到的包,包括googletest什么的$ sudo bash build_support/packages.sh创建build文件夹,cmake创建CMakeFile,结束后build文件夹里会出现很多文件,注意此时外面的 CMakeList.txt 不可修改,否则要重新build参考官方https://github.com/cmu-db/bustub$ mkdir build$ cd build$ cmake ..因为我们

2021-08-15 13:42:11 1195 1

原创 2021.08.09 Leetcode 313: 超级丑数 & 动态规划

题目套了一个素数的大主题,但其实和素数算法没什么关系,简而言之,就是提供一个数组arr,计算仅由arr数组中不同元素乘积出的数字,从小到大排序的第n个数字。大致思路是dp数组中每个数字都可以由之前dp数组中的数字乘以prime数组中的各个数字得到,问题是,哪个dp数字乘以哪个prime数字可以得到下一个dp呢?无非是dp[0] * prime 与dp[1] * prime与dp[2]*prime中取第n个最小数。那么我们可以用一个辅助数组point记录每个prime乘以第几个dp可能得到当前最小值,然后

2021-08-09 11:01:56 97

原创 2021.08.05 LeetCode 802: 拓扑排序

题目大致意思是在一个有向有环图中,若从某个节点开始是无环的状态(以某个节点为起点是有向无环图),那么记录这个节点为安全节点,最后返回安全节点的集合。我刚拿到题,就从正向开始暴力dfs搜索,顺便用一个circle记录不安全节点,若探索到的节点位于不安全节点集合中,那么在探索的点也必定是不安全点。但这个思路不可避免要走很多遍graph数组,几乎四O(n2)的,于是超时了。。。官方题解:拓扑排序,时间复杂O(n+m)首先介绍拓扑排序,这是对于有向无环图定义的一种排序,有点类似BFS(需要用到队列),但也可

2021-08-05 14:28:07 119

原创 2021.7.30 引用 & 互斥锁

引用参考菜鸟blog1即变量的别名引用变量是另一个变量的别名,他没有自己的内存地址,只会 与它所引用的变量的内存地址相关联,因此不先声明后赋值(Ex: int &var1 ; var1 = var2),就像喊一个不实际存在的人的小名一样,是错误的,必须在声明时初始化它。函数按引用传递,引用传值是传的实参列表中每个变量的引用,每次改变形参的值,都会改变实参的值,因为他俩指向同一块内存区域。演示函数传的引用变量与实参的地址相同#include <iostream>#in

2021-08-04 17:09:15 92

原创 C语言:顺序表、链表、队列、栈 及基本操作

顺序表#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Vector{ int *data; int size, length;}Vector;Vector *init(int n){ Vector *vec = (Vector *)malloc(sizeof(Vector)); vec->data = (int *)malloc(sizeof(int)

2020-12-04 20:57:19 251

原创 C语言:森林与并查集

两种考察连通性的算法:Quick_find算法:将所有元素的代表元素设为后面merge的元素,最后会呈现出表格中有几个元素就有几类的情况,但每次更新权值都要进行所有元素的搜索,很慢。Quick_union算法:将每个集合的代表元素改成一样的,比如2->1,那么将2与3并时,只需将1->3。判断是否属于一个集合需要递归找到自己就是代表元素的节点,就是这个集合的根结点,此时也是,有几个集合就有几个树。Quick_union优化:根据权值(子节点数量)决定谁是爸爸路径压缩:在搜索代表节

2020-12-02 00:50:20 213

原创 C语言:非稳定排序(选排,快排)

稳定与非稳定的定义可以参照前一博文(稳定排序)插入排序:将已排序区设在数组首部,遍历待交换区找最值,交换到待交换区首/已排序区末。由于是直接交换,是非稳的。快速排序:与归并一样,用的是分治的思想。大致思路是,选数组首元素为基准值,然后使数组首/左指针与尾/右指针相向移动,将比基准值大的元素移到左指针右边,比基准值小的移到右指针左边,可以保证左右指针相交处,右边都比基准值大,左边都比基准值小。(先是左指针左边一定小,右指针右边一定大,逐步逼近相交情况,这样能进行最少次数交换,找到 小-基准值-大 情况)

2020-12-01 01:05:31 295

原创 C语言:稳定排序(冒泡,插排,归并)

什么叫稳定排序呢?比如排序中有两个一摸一样的数字,如果排完序,两个相同的数字顺序没有改变,就是稳定的, 反之,就是非稳定的。稳定排序包括:冒泡:插入:不断地将待排序区数字加入到已排序区,直到待排序区没有元素,【有点像插队;O(n^2)归并另外,排序算法还能分为: 内部排序、外部排序(当前数组不可以全部加载到内存中,需要分段加载)...

2020-11-30 22:06:18 652

原创 C语言基础数据结构:二叉树及与广义表的转换

二叉树建立与广义表输出#include <stdio.h>#include <stdlib.h>#include <time.h>typedef struct Node{ int data; struct Node *lchild, *rchild;}Node;typedef struct Tree{ Node *root; int n;//节点个数?}Tree;Node *init_node(int val){ Node *p = (No

2020-11-30 15:39:24 796

原创 面试笔试算法:广搜

​ 难得的休息日,小明起床时就已经 11 点多了,他常去的馅饼店一般 12 点就没饭了,他需要赶紧洗漱,出门,然后去馅饼店吃饭,到了小区大门口他傻眼了,前几天贴的修路公告成为了现实,现在小区门外已经成为工地,到处都是路障。小区门口到馅饼店的路形如一个 n×m 的二维矩阵,能走的道路被标记成了 .,路障被标记成了 #,小区大门被标记成了 2,馅饼店被标记成了 3,小明可以在矩阵上上下左右移动,每移动一次代表走了一步,现求小明从小区门口最少走多少步才能到达馅饼店,若无法到达则输出 −1。...

2020-11-29 17:39:53 139

原创 面试笔试算法:深搜

由数字 0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 1 构成,围圈时只走上下左右 4 个方向。现要求把闭合圈内的所有空间都填写成 2。例如:6×6 的方阵 (n=6),涂色前和涂色后的方阵如下:#include <iostream>using namespace std;//预留出一圈,并将外圈连通的区域标记为2,那么剩下的为0区域则是要求区域int n;int mmap[100][100];int dir[4][2] = {0, 1, 1, 0, 0, -1, -1, 0

2020-11-27 23:25:35 178

原创 C语言:堆与完全二叉树与优先队列

堆与完全二叉树区别:堆分为大顶堆和小顶堆,即在满足完全二叉树的条件下,还要满足(根,左孩子, 右孩子)这个三元组始终满足根最大or最小的性质。接下来,以大顶堆为例,阐述关于堆的一些操作:查找最值:根始终为最大值,根的左右孩子中一定有第二大值,但第三大值就不确定了;插入值:首先为了满足完全二叉树的结构,将值添加在最后面,然后沿着该节点到根的这条路劲上,以从小到大的原则,进行换位调整(有点冒泡的意思),直到整条路径上的元素为有序的;弹出值:将栈顶弹出(类似队列),然后为了维护完全二叉树节构,将树最后元素

2020-11-08 20:56:17 190

原创 C语言:Hash表查找字符串内容

#include <stdio.h>#include <stdlib.h>#include <string.h>//拉链法//链表节点,数据域存字符串typedef struct Node{ char *str; struct Node *next;}Node;//顺序表(表头,大小)typedef struct HashTable{ //链表首地址,是链表头结点的顺序表,由于头结点是Node *,顺序表示Node ** Node **data

2020-11-08 17:02:25 2623 2

原创 linux : my_ls实现

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <dirent.h>#include <string.h>#include <sys/types.h>#include <sys/ioctl.h>#include <sys/stat.h>#include <time.h>//最大文件名长度512,文件数量

2020-10-31 15:27:13 218

原创 linux: shell实现线性筛

要点shell中数组的表示及初始化test表达式,运算表达式,if表达式,for表达式,赋值表达式输入参数的表示,如$@, $#, $0, $1…#!/bin/bash#输入一定范围内素数#declare -a primefunction usage(){ printf "Usage : %s start_num end_num\n" $0}#初始化数组function init(){ s=$1 e=$2 for (( i=$s; i<=$

2020-10-29 22:55:31 224

原创 linux: exec实战

打开一个.c文件,并编译,如果编译成功,则继续执行这个.c文件。#include<stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <wait.h>int main(int argc, char *argv[]){ char filename[512]; if (argc < 2){ fprintf

2020-10-29 20:54:42 150

原创 linux: my_cat实现

功能:-b 空行不标行号-n 空行标行号现在版本不支持读入多个文件,可以类似 ./a.out -b test -n test,因为optind每次while后都不移动,所以不知道如何实现类似./a.out -b test1 test2,多个文件读入。Code:知识点:getopd, fopen, fgets函数特性/************************************************************************* > File Nam

2020-10-29 20:54:26 113

原创 linux: 初识pthread

注意点pthread_create 与pthread_join成对出现注意传参格式,pthread_create(&线程id, NULL, (func *)类型函数地址, (void *)变量或结构体地址);,函数定义则是void *函数名(void *arg),函数内部要先把void指针arg强转为指定类型,如结构体可以新声明一个变量。也可以写成printf("My name is %s, age is %d\n", ((struct Mystruct *)arg)->name, ((

2020-10-29 20:53:00 123

原创 linux: 使用多进程,编写简单命令my_exec

/************************************************************************* > File Name: 2.100_child.c > Author: suyelu > Mail: [email protected] > Created Time: Sat 17 Oct 2020 03:05:43 PM CST *************************************************

2020-10-29 20:52:34 175

原创 C语言:欧几里得算法 or 辗转相除法

求最大公约数#include <stdio.h>#include <math.h>int grd(int a, int b){ return (b ? grd(b, a % b) : a);//取余为0则返回前一个数,否则返回递归}int main() { setvbuf(stdout, NULL, _IONBF, 0);//eclipce读写缓冲区问题 int a, b; while(~scanf("%d %d", &a, &b))

2020-10-25 19:02:55 438

原创 linux:输出文件/目录中最长字符串

最简单版本#find_max.sh#!/bin/bash#if [[$# lt 1]];then# echo "Usage : %s file[...]\n" $0#fimax_len=0max_str=''for i in `cat $1 | tr -s -c "a-zA-Z" " "`; do len=${#i} if [[ ${len} -gt ${max_len} ]];then max_len=${len} max_str=${i}

2020-10-20 16:42:19 440

原创 C语言:工程规范(头文件,makefile)

程序源文件//main.c#include <stdio.h>#include <t1.h>int main(){ printf("%d\n", add(1, 3)); return 0;}//t1.h#ifndef _T1_H#define _T1_Hint add(int, int);#endif//t1.cc#include<stdio.h>#include <t1.h>int add(int a,

2020-10-18 01:09:40 416

原创 K-Nearest-Neighbour:kd树的理解

代码参考GitHub:lihang-code的第三章。kdtree用于计算距离多维数据目标点距离最近的点,用于采集K近邻中的k个距离最近的点。李航书中用一个二维的例子来解释这一过程,由于是二维,距离选择欧式距离(二范数),猜想高维数据将用到更高的范数来计算所谓距离。题目:给定一个二维数据集:data = [[2,3],[5,4],[9,6],[4,7],[8,1],[7,2]]计算距离点(3,4.5)距离最近的点。这个例子的优点在于,它的最近点不是分割出这一空间的叶子节点,也不是这个叶子结点

2020-10-15 19:38:08 424

原创 C语言:源文件 头文件【.c/.cc/.h】的使用

一个函数包括定义与声明,定义中包含了函数是如何实现的,声明则阐明函数如何被调用。工程上为了将个函数模块化,通常将声明与定义分开,一般将主函数定义放在.c中,其他函数定义放在源文件.cc中,函数声明放在.h中。.c 中包含主函数,并include所有使用到的头文件;.cc中包含其他函数定义,并include需要的.h文件或需要的非本函数的声明;【保证这个源文件可以单独编译成功如果不将函数的声明与定义分开,将函数声明和定义都放在.c中,那如果现在要增加一个函数的声明文件2.c,这个新函数include其

2020-10-13 21:34:26 2704

原创 C语言:数组操作【素数/线性筛、二分查找】

arr代表数组首地址,type arr[n]将在内存中开辟一块连续的nsizeof(type)存储空间,arr + 1代表在原来地址基础上偏移1个type类型地址大小,32位sys中就是32位,同理64位。在函数内部建数组,是在栈区,不赋初始值可能会有奇怪的数字;而在函数外,则变量默认在堆区开辟空间,自动进行初始化操作【都为0】。栈区默认8MB【约可存储2百万个整形变量,8102410248/32 ~=2097152】,大于200万的变量数最好开在堆区。函数与数组有一定类似性,数组也可以理解为下标与值的

2020-10-13 16:02:51 270

原创 C语言:函数的声明与定义

函数的声明函数名称,类型,参数列表报undeclared错误计算机只考虑如何使用函数函数定义具体实现的逻辑报undefined错误计算机考虑函数如何实现当重复定义,报duplicated错误,因为计算机不知道你要用哪个定义。.c为源文件,先经过预编译,将头文件展开生成相应代码,接下来开始编译,生成对象文件.o,然后对所有对象文件链接打包,生成可执行程序.out函数未声明错误发生在编译阶段,此时进行语法检测,而函数未定义错误发生在链接阶段。仅生成对象文件:gcc -c xxx.c文件

2020-10-05 15:08:26 592

原创 二叉树专题

反转二叉树有一个问题,若没有node->lchild = reverse(node->lchild);而是直接reverse(node->lchild);就会宝座#include<iostream>#include<string>using std::cin;using std::cout;using std::endl;using std::string;class Node {public: char data; Node *l

2020-09-19 18:05:43 75

原创 C++:二叉树及相关操作

#include<iostream>using std::cout;using std::endl;class Node {public: int data; Node *lchild, *rchild; Node(int _data) { data = _data; lchild = NULL; rchild = NULL; } ~Node() { if (lchild != NUL

2020-09-19 00:55:49 190 1

原创 C语言:输入输出

这期主要讲printf 和scanf 族类函数。首先,这两个函数都是有返回值的,printf函数返回成功输出的字符个数,scanf函数返回成功接收的参数个数,如果接收到Ctrl + z, 代表文件末尾EOF, 返回-1。#include<iostream>int main(){ setvbuf(stdout,NULL,_IONBF,0);//针对Eclipse_for_C输出顺序问题,将缓存区空间设为0. printf("一共输出了%d个字符\n", printf("123 456\

2020-09-17 01:12:55 589

原创 C++ 栈的相关操作

栈#include<iostream>#include<string>#include<cassert>using std::cin;using std::cout;using std::endl;using std::string;template<typename Type> class Stack {private: Type *elements; int max_size, top_index;public:

2020-09-12 16:56:05 227

原创 C++队列*增删查等操作*

队列#include <iostream>using std::cout;using std::endl;template <typename Type> class Queue {private: Type *data; int head, tail, length;public: Queue(int length_input) { data = new Type[length_input]; length = l

2020-09-11 15:24:03 1139

原创 C++顺序表、链表的*插删查等*操作

顺序表#include <iostream>#include <cstring>using std::cout;using std::endl;//定义顺序表模板类template <typename Type> class Vector {private: int size, length; Type *data;public: Vector(int input_size) { size = input_size;

2020-09-09 18:09:55 223

原创 Matlab修改背景色

点击主页->预设->颜色修改颜色不得不说有点丑,,,

2020-04-21 17:45:12 830

原创 Tensorflow-GPU 2.1 &1.14版本安装教程

注意!内容记录于2020年4月8日,本文使用Anaconda3(conda 4.5.11),对应Python版本3.7进行安装。Anaconda版本在pompt下输入可查:conda -V接下来的安装内容可以在Tensorflow官方网站上找到,点击左上角安装,就会是官网教程页面。接下来的安装分为两个部分:硬件配置软件安装硬件配置点击左侧GPU板块,可以看到必须的软硬件要求...

2020-04-08 18:31:28 1612

原创 C语言:关于字符串操作感悟

由于C没有像C++或者Java或者。。。的各种花样繁多的字符串操作函数。而仅有屈指可数的几种函数:函数名功能strlen(s1)返回字符串s1长度,而非这个变量占用空间的大小,那个是sizeof())strcpy(s1,s2)复制字符串 s2 到字符串 s1strcat(s1, s2);连接字符串 s2 到字符串 s1 的末尾其他的函数先暂时用不到,用...

2019-12-15 17:49:42 312

oracle 10g 数据库管理课堂练习II 学生指南第1册.pdf

官方的的大学生oracle学习教材,配合课后练习题,效果更好

2017-12-10

空空如也

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

TA关注的人

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