算法

什么是哈夫曼树

转自: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

堆排序怎么排

  1、当一个节点被插入时,将该节点放在堆的末尾(这是为了保证堆是完全二叉树);    2、然后将该节点与它的父节点比较,看该节点是否大于(或小于)其父节点,即判断当前的堆是否满足堆序;    3、如果不满足,则将该节点与其父节点交换。再将该节点与其新的父节点做比较,依此类推,直到该节点不再需要与其父节点交换为止;  ...
开发笔记·2022-08-01

选择排序是什么

选择排序(Selectionsort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。...
开发笔记·2022-06-10

什么是栈 栈的特点是什么

栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为先进后出表。 ...
开发笔记·2022-05-12

二叉树的遍历图解例题详解

一、前序遍历:根节点->左子树->右子树二、中序遍历:左子树->根节点->右子树三、后序遍历:左子树->右子树-->根节点四、层序遍历:从根节点出发,依次访问左右子树结点,再从左右子树出发,依次访问它们的子树结点,直到节点访问完毕。...