数据结构与算法
前路漫漫其修远兮
主要从事与C#.NET相关的学习
展开
-
数据结构学习一,排序算法:冒泡排序、插入排序、选择排序、快速排序、归并排序
1 选择排序法一共对比了15次int[] arr = new int[] { 64, 5, 23, 2, 4, 16 }; int min; for (int i=0; i<arr.Length - 1;i++) { min = i; for(int j...原创 2019-07-21 20:33:34 · 551 阅读 · 0 评论 -
C#中利用Math.NET进行矩阵运算,极大提高数组运算的性能
本人写了一个airPLS的算法,用到大量的数组运算,由于以前是用for循环来解决数组计算,如果你的数组很大,那么整个算法跑下来非常消耗时间。解决办法是利用MathNet.Numerics,他的安装方法见博客,或者可以直接下载MathNet.Numerics.dll(自己百度)。使用前先添加命名空间using MathNet.Numerics.LinearAlgebra.Double;using MathNet.Numerics.LinearAlgebra.Generic;一、常用的矩阵初始化v原创 2020-05-29 16:24:32 · 4359 阅读 · 0 评论 -
C#实现递归;二维数组的转置;矩阵的相乘(介绍利用Parallel.For 循环并行计算解决传统for循环慢的问题);值和矩阵相乘;求矩阵的逆
递归就是方法调用它自身,并且可读性很好,缺点就是一般不是最快的实现。初学者在用递归实现方法是,常见的错误在程序执行期间发生栈溢出,这是由无限递归造成;或者你返回的不是你想要的。以下就是靠递归来实现一个二阶差分private void Form1_Load(object sender, EventArgs e) { double[,] array = new double[,] { { 1,1, 1 }, { 5, 5, 5 }, { 25, 25, 25 } };//定原创 2020-05-25 21:22:48 · 1943 阅读 · 0 评论 -
二叉搜索树的C#实现
二叉搜索树又称二叉查找树,亦称为二叉排序树。性质如下:(1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值;(2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值;(3)左、右子树也分别为二叉搜索树;基础知识介绍:上图中A为B的双亲结点,B为A的孩子结点。根为第一层,根的孩子为第二层,树中结点的最大层次数称为树的深度或高度。上图所示树的深度为4。现将一组数{61, ...转载 2020-04-29 22:44:04 · 475 阅读 · 0 评论 -
二叉树基础及其C#代码实现
二叉树的遍历有深度遍历(前序、中序、后序)和广度遍历(层次遍历)。二叉树的顺序存储结构就是使用一维数组存储二叉树中的结点,并且结点的存储位置,就是数组的下标索引,如下图所示就是完全二叉树的顺序存储方式,但一般它也只适用于完全二叉树。1.前序遍历就是从二叉树的根节点出发,当第一次到达节点时就输出节点数据,按先左后右方式访问,故上图结果为ABDHIEJCFG。2.中序遍历就是从二叉树的根节点出发...原创 2020-04-27 17:38:55 · 1565 阅读 · 0 评论