算法

什么是Hash算法

什么是Hash算法Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法。哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表...
开发笔记·2024-09-30

数组和链表的比较

数组:数组是将元素在内存中连续存放,由于每个元素占用的内存相同,可以通过下标迅速访问数组中的任何元素,但是增加或者删除一个元素,就需要移动大量的元素,比较缓慢。链表:链表中的元素在内存中不是顺序存储的,而是通过指针存在一起,每个节点包括两个部分,存储元素的数据域与存储下一结点地址的指针域如果访问链表中元素,需要从第一个...
开发笔记·2024-08-28

HashMap的实现原理

(1)HashMap的概述HashMap是基于哈希表的Map接口的非同步(非线程安全)实现,允许使用null值和null键,此类不保证映射的顺序。(2)HashMap的数据结构HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap的底层就是一个数组结构,数组中的每...
开发笔记·2024-08-28

二叉树深度的算法

题目:二叉树用二叉链表表示,编写求二叉树深度的算法。答案是:intheight(BitreeT){ if(T==NULL)return0; u=height(T->lchild); v=height(T->rchild);  if(u>n)return...
开发笔记·2024-06-16

什么是哈夫曼树

转自:https://blog.csdn.net/shuangde800/article/details/7341289   一、哈夫曼树的概念和定义 什么是哈夫曼树?让我们先举一个样例。判定树:       ...
代码星球·2024-01-19

什么是数据结构

数据结构本质上就是数据的存储方式。我们知道,数据存储只有一个目的,那就是为了数据的后期再利用,就如同我们使用数组存储{1,2,3,4,5}是为了后期求和,无缘由的数据存储行为是对存储空间的不负责任。因此,数据在计算机存储空间的存放,决不是胡乱的,这就要求我们选择一种好的方式来存储数据,而这也是数据结构的核心内容。例如,...
开发笔记·2024-01-12

什么是字典序排序

字典序(字典顺序)排序是一种按照字母表或字典中的顺序排列元素的方法。对于数字,字典序排序是按照数字的每一位从高位到低位进行比较排序。例如,对于数字123和12,按照字典序排序,先比较第一位,因为1和1相等,然后比较第二位,3大于2,所以123在字典序中排在12的前面。在C++中,如果使用std::sort对数字进行排序...
开发笔记·2023-12-28

迪杰斯特拉算法原理

迪杰斯特拉算法(Dijkstra'sAlgorithm)是一种用于解决图中单源最短路径问题的贪心算法。该算法以荷兰计算机科学家艾兹赫尔·迪杰斯特拉(EdsgerDijkstra)的名字命名。以下是迪杰斯特拉算法的基本原理:初始化: 创建两个数组,一个用于存储从起始顶点到每个顶点的当前已知...

顺序表的基本操作-完整代码和拆开分析

#include<stdio.h>    //增+删+改+初始化+输出#include<stdlib.h>#defineMaxSize10此数决定了后面插入数据的多少,超过该数字输出顺序表的时候不是正确的数typedefintElementType;structSqList{ElementTyp...

二叉树的完整代码实现

#include<stdio.h>#include<stdlib.h>#include<malloc.h>typedefstructNode//结构体{chardata;structNode*LChild;structNode*RChild;}BinNode,*BinTree;Bin...
开发笔记·2023-03-10

冒泡排序-Bubble sort

冒泡排序算法的流程如下:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。functio...
开发笔记·2023-03-06

表达式树+反射实现动态排序。List动态排序,集合动态排序

比如要点击表头进行排序,排序的字段比如多,一个一个判断去写就比较麻烦。判断就太多了,如果其他地方也要用排序重复代码就会很多,类似这种。if(sort.ToLower()=="max"){if(sortway=="asc"){query=query.OrderBy(a=>a.Max);}else{query=que...

VRP问题

Thevehicleroutingproblem(VRP)——车辆路径规划问题,也叫做车辆调度、车辆派遣、或者派送问题。最基本的VRP如下:多个客户的位置已知,其各物品的需求数量已知,需要从一个仓库用多个容量已知的车辆运输物品,来满足这些客户的需求。VRP的目标一般有两种。一是找到各个车辆的最佳...
开发笔记·2023-02-02

栈的顺序存储及其运算

用一维数组S(1∶m)作为栈的顺序存储空间,其中m为最大容量。在栈的顺序存储空间S(1∶m)中,S(bottom)为栈底元素,S(top)为栈顶元素。top=0表示栈空;top=m表示栈满。栈的基本运算有三种:入栈、退栈与读栈顶元素。(1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加一(即top加1...
开发笔记·2022-10-24

高阶函数是什么?

高阶函数,就是函数中可以传入另一个函数作为参数的函数。...
开发笔记·2022-09-09