- 博客(20)
- 收藏
- 关注
原创 PyTorch C10 CUDA 模块源码结构解读(参考版本:PyTorch 2.0.0 RC1)
本文针对PyTorch C10库的CUDA模块展开分析。该模块位于操作系统底层之上,PyTorch C++与Python接口之下,提供对CUDA的基本操作和资源管理。
2023-04-13 10:52:03 2553 2
原创 【Spring Boot】日期时间交互方式:@JsonFormat与@DateTimeFormat,MySQL datetime与java.sql.Timestamp
springboot与前端及数据库交换日期时间的方式。
2022-07-31 21:58:43 775
原创 glibc strlen 实现方式分析
本文对 glibc 2.35 源码中的 函数实现展开研究,分析其使用位运算实现更快长度计算的原理。下面是 glibc strlen.c 的文件内容:分析区别于逐一比较每个字符是否为0,glibc的strlen采用每8字节(64位程序)一比较的方式,快速找到为0的字节。之后,对含0的8字节内进行逐字节比较,找到0的位置。为提升效率,首先对前几个字符进行逐一比较,直到指针与long型地址对齐。比较原理之后,是每8位一比较的原理。假如某字节为全0,即为 00000000(二进制)。那么,如果我们对它进
2022-07-04 15:24:30 338
原创 简易搜索引擎原理与基于Hadoop MapReduce的搜索引擎实现
本文介绍简单搜索引擎的原理,并基于Hadoop完成针对同济新闻网的搜索引擎构建。本文所述搜索引擎较为简单,无法达到商用级别,但仍可管中窥豹,学习其基本原理,并锻炼编写 Map Reduce 程序的能力。
2022-05-09 00:28:47 3177 3
原创 爬虫原理与多线程爬虫开发(Kotlin/Java)
本文以同济新闻网为例,借助 Jsoup 库,爬取网站上的新闻,并按一定格式存储到文件。爬虫采用多线程模式设计,性能较单线程爬虫有显著提升。需求分析想要对一个网站进行爬取,首先肯定需要知道自己想要什么。本例中,我们希望爬取同济新闻网的尽量多的新闻数据,基于爬取到的内容对其构造搜索引擎。因此,我们的目标很明确:从同济新闻网首页进入,探索每一个可以点开的链接。如果探索到的页面是新闻页面,就将其内容提取并存储到文件。
2022-05-08 22:01:52 1608
原创 使用 IntelliJ IDEA Maven 创建包含部分类和依赖库的 Java/Kotlin 程序包
问题起因本人在 Windows 上用 IDEA 编写一个简单的 Kotlin 程序,其中需要用 Jsoup 等库。该程序将拷贝到服务器上运行。由于服务器环境没有 Jsoup 等库,我希望在 Windows 上完成程序的打包,并把 Jsoup 等库包含到生成的 Jar 内,以此实现在另一环境顺利运行。参考配置在此列出我的软件版本和配置。如果你的版本跟我不一样,那么后续过程或许会有差别(会差多少我也不知道捏……)。IDE: IntelliJ IDEA 2022.1 Community项目配置:Kot
2022-05-05 15:17:42 1548
原创 [C++] 七种常见排序算法的实现及运行效率对比(算法课实验)
简介本文实现以下七种排序算法:插入排序选择排序冒泡排序希尔排序堆排序快速排序归并排序使用 C++ 完成,并测试运行时间。算法说明以下针对每种算法,从网络摘取简介,并附实现代码。所有实现以对 int 数组排序,目标为从小到大为例。感兴趣的读者可以自行编写更通用的写法。插入排序插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。void insertSort(int*
2022-03-02 13:59:04 4060
原创 PHP 文件操作
(本文为个人学习过程的备忘录。内容持续更新)打开文件 fopen()$file = fopen("./file.txt", "r");参数表文件路径打开方式模式描述r只读。从文件开头开始r+读写。从文件开头开始w只写。打开并清空文件内容。文件不在则新建w+读写。打开并清空文件内容。文件不在则新建a追加。打开文件并从末尾继续。文件不在则新建a+读/追加。x只写。创建新文件。若文件已在,则返回false和一个错误x+
2022-01-26 16:11:46 1171
原创 红黑树详解(上)(红黑树的基本概念、查找操作、插入操作)
红黑树详解前言师傅渣哥在最后一节课上提到,如果能在简历上写“手写过红黑树”,给对方的感觉一定是不一样的。正值寒假,笔者学习大量前人文章,又投入数个夜晚思考,逐个情况推导方案,编写代码,调试分析,终于完成了该数据结构的编写。红黑树结构中涉及大量子问题,需要分类的情况繁多复杂。努力的结果是一棵高效率的查找树,既传承二叉平衡树的优点,又尽可能避免二叉平衡树在平衡过程中带来的过度性能开销。透过红黑树,仿佛看到前人彻夜思考的身影,为哈希表等更高级的结构乃至操作系统的底层埋下奠基。看前人智慧结晶如琉璃飘落,
2022-01-22 00:10:17 2106 3
原创 [C++] 使用 Huffman Tree 哈夫曼树实现对 ASCII 字符串文本的压缩与解压(下)
上接:[枫铃树] [C++] 使用 Huffman Tree 哈夫曼树实现对 ASCII 字符串文本的压缩与解压(上)
2021-11-07 12:27:47 1239
原创 [C++] 使用 Huffman Tree 哈夫曼树实现对 ASCII 字符串文本的压缩与解压(上)
前情如果你对树和哈夫曼树的概念比较模糊,可以先看看这篇文章:[枫铃树] 树和 Huffman Tree 哈夫曼树用哈夫曼树实现对 ASCII 字符文本的压缩与解压考虑以下文本:LarryYYDS如果直接按照 ASCII 码存储这段文本,由于单个字符需要占据一字节(8 bits)空间,这段文本总共需要占用 9×8=72 (bit) 空间。下面,我们进行一个神奇的操作。首先,统计这段文本中各个字符出现的频率:字符出现次数L1a1r2y1Y
2021-11-07 10:35:38 2419 6
原创 树和 Huffman Tree 哈夫曼树
基础概念补充什么是树这是一棵有12个节点的树(其中,我们定义这棵树每个节点上的数字只是它的编号,没有其他意义)。#mermaid-svg-6NdIJ5IscyFAQ8o5 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-6NdIJ5IscyFAQ8o5 .label text{fill:#333}#merm
2021-11-07 10:34:27 1799 2
原创 C/C++ 标准输入方式的输入错误处理
需求描述从输入缓冲区读一个数,希望读到的是一个从0到100的整数(闭区间)。为方便输入者,我们适当提供提示,但无法预测输入者是否按照我们的规定在输入。处理原则如果用户输入的确实是整数,并且整数范围在我们想要的区间内([0, 100]),则输入成功。如果用户输入的是超出范围的整数,则提醒用户重新输入。如果用户输入的数据类型错误(比如输入了abc),会导致输入流错误(不理解啥是输入流?可以先不管),应该清空整个输入缓冲区。注:上述第二种情况,由于输入流状态正常,说不定后面有一个正确的数据等着呢
2021-11-03 11:41:29 9657 18
原创 Python Requests 库
(本文为个人学习过程的备忘录(踩坑记录)。内容持续更新)导入该库不需要下载。import requests发送请求get 请求response = requests.get(url='https://xxx', headers=xxx, params=xxx)url 是必填项,其他选填。headers 为 dict 格式。如下:headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.
2021-10-23 16:33:37 104
原创 PHP Array 操作
(本文为个人学习过程的备忘录(踩坑记录)。内容持续更新)为便于理解,我们定义如下 Array 对象:// index// 0 1 2 3 4 5$arr = ['a', 'b', 'c', 'd', 'e', 'f'];快速输出数组元素当然可以用循环,但此处希望使用一行代码快速输出。如果使用echo $arr,会得到如下结果:Array正确方法是使用print_r()函数对数组进行输出。输出语句为print_r($arr),结果如下:Arra
2021-10-19 10:11:58 365
原创 C++ 无符号大整数类 BigUInt 的实现
问题提出我们知道,在python中,使用内置的int数据类型即可完成大整数高精度运算。但是,C++和Java等语言内置的整数只能满足最高64位的计算。对此,我们希望在C++中实现一个大整数类,其具有一定的高精度计算能力。目标制作一个大整数类,实现高精度加、乘法运算等功能。为满足变长要求,采用动态内存申请方式管理内部数据。为简化难度,暂只考虑无符号情况。功能点设计首先,一个数字必须要有赋值能力。对此,我们设计如下功能:使用 unsigned long long 为大整数对象赋值大整数拷贝(使用
2021-09-30 18:19:57 1496
原创 [同济OJ] HW1: 线性表 > 1-4 一元多项式的相加和相乘
原题描述一元多项式是有序线性表的典型应用,用一个长度为m且每个元素有两个数据项(系数项和指数项)的线性表((p1,e1),(p2,e2),…,(pm,em))可以唯一地表示一个多项式。 本题实现多项式的相加和相乘运算。本题输入不保证有序。输入第1行:一个整数m,表示第一个一元多项式的长度第2行:2m项,p1 e1 p2 e2 ...,中间以空格分割,表示第1个多项式系数和指数第3行:一个整数n,表示第二个一元多项式的项数第4行:有2n项,p1 e1 p2 e2 ...,中间以空格
2021-09-28 16:20:27 612
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人