
数据结构
文章平均质量分 55
一片云略过
这个作者很懒,什么都没留下…
展开
-
pytorch中gather函数的官方样例理解
在简书、csdn中的很多帖子中,都没有根据gather函数的官方解释进行理解的,很多同学们根据二维矩阵或三维矩阵的单例去理解后不具备通用性,这是因为不结合三维角度去解释是错误的。下边给出结合官方解释去理解gather函数的处理过程的思路。这里是官方文档的解释torch.gather(input, dim, index, out=None) → TensorGathers values along an axis specified by dim.For a 3-D tensor the outp原创 2021-04-07 17:03:56 · 397 阅读 · 5 评论 -
使用四元数完成控制三维物体旋转全过程(详解全流程)
使用四元数完成控制三维物体旋转全过程(详解全流程)在使用四元数的时候,查到晚上很多的文章要么是针对数学问题就行推导,要么就是胡乱复制粘贴乱写一起的文章,而没有详细解释在实践过程中,如何一步步完成计算的全部过程,对小白极度不友好。因此本人写出本文章,本文不讲数学原理,只专注于描述全部实现的过程,对数学感兴趣的可以自行百度,希望能够和大家沟通交流,同时减轻小白的理解压力。同时欢迎下载相应的资源:https://download.youkuaiyun.com/download/qq_32563773/13077923原创 2020-10-30 15:39:36 · 3206 阅读 · 1 评论 -
递归详解及算法应用
本文来自B站郝斌老师的《数据结构》整理的来,若有侵权,欢迎私信我。课程来源:https://www.bilibili.com/video/av6159200?p=59递归定义:一个函数自己直接或间接调用自己递归满足三个条件递归必须得有一个明确的中止条件该函数所处理的数据规模必须在递减这个转化必须是可解的循环和递归递归易于理解速度慢存储空间大循环不易理解速度快存储空间小函数的调用:当在一个函数的运行期间调用另一个函数时,在运行被调函数之前,系统需要完成.原创 2020-08-25 19:58:59 · 203 阅读 · 0 评论 -
++i和i++的区别详解
++i和i++有什么区别a = i++;a = i;i = i + 1;a = ++i;i = i + 1;a = i;i++和++i的 最重要的区别就是 +1和返回值顺序从效率上来说++i比i++来的更有效率,因为i++多声明了一个过渡的变量。如下所示:对于i++的实现是:int temp;temp = i;i = i+1;return temp;而++i的实现是:i = i+1;return i;比如printf("%d",i++);是先输出i值原创 2020-08-25 10:15:50 · 27876 阅读 · 6 评论 -
数据结构---堆栈的特点及C语言实践
堆栈定义:一种可以实现“先进后出”的存储结构分类:静态栈(基于数组)动态栈(基于链表)算法:压栈;出栈应用:函数调用;中断;表达式求值;内存分配;缓冲处理;迷宫C语言实现动态栈的创建、入栈、出栈、清除实例:# include <stdio.h># include <malloc.h># include <stdlib.h>typedef struct Node{ int data; struct Node* pN原创 2020-08-06 11:17:43 · 947 阅读 · 0 评论 -
链表的定义及概念(附c语言实现链表的初始化、长度计算、排序、插入、删除、显示的函数实现过程)
链表链表为离散存储的数据结构。由n个节点离散分配,彼此通过指针相连,每个节点只有一个前驱节点和后驱节点,首节点没有前驱节点,尾节点没有后驱节点。关键概念:首节点:第一个有效节点尾节点:最后一个有效节点头节点:第一个有效节点前的那个节点头节点不存放有效数据加头节点的目的主要是为了方便对链表的操作头指针:指向头节点的指针变量尾指针:指向尾节点的指针变量实现链表元素的插入和删除算法(伪代码):插入:r=p->pNext; p->pNex原创 2020-08-06 09:02:28 · 559 阅读 · 0 评论 -
c语言通过指针完成对数组的扩充、插值、删除、反转、排序等,实现java的ArrayList操作
c语言指针实现java的ArrayList操作在学习数据结构的同时进行实践,使用指针的方式对数组进行操作,最终完成java中类似ArrayList的操作方法。#include<stdio.h>#include <malloc.h>#include<stdlib.h>struct data{ int* pst; int lent; int cnt;};void ini_arr(struct data* pst,int length);bool i原创 2020-08-04 16:12:25 · 509 阅读 · 0 评论 -
数据结构预备知识---指针、指针与一维数组、指针与结构体
指针指针【int * p】表示int类型的,存放着地址的变量p。p表示一个地址,*p表示指向p地址的一个变量。例如:int main (void){ int i = 10; int j; int * p; p = &i;//使用i的地址为p初始化 j = *p; printf("i = %d\n j = %d \n *p = %d\n",i,j,*p); //输出为i = 10,j=10,*p=10 *p =原创 2020-08-03 21:16:41 · 220 阅读 · 0 评论 -
快速理解哈希表(散列表)另附leetcode两数之和题目解法
哈希表算法链表解决方式数组:寻址容易,插入和删除数组困难;链表:寻址困难,插入和删除数据容易;综合了两个的有点,哈希表使用了数组+链表(指针)的方式:开放地址线性探测法如果冲突,那么下标+1,知道找到空得位置。平方探测法如果冲突,那么下表+i平方。双哈希设置第二个哈希函数,如果冲突则使用这个函数,得到i,往后数i个位置。即新位置=原位置+i*hash2。例如:hash2(key)=R-(key mod R)保证R取值为比下标数组尺寸小的质数。注意事项哈希函数应该设置合理,使得原创 2020-07-28 17:47:40 · 268 阅读 · 0 评论