- 博客(26)
- 资源 (9)
- 收藏
- 关注
原创 0.专栏首页
1.C#的数据结构杂谈2.C#写算法之分析时间复杂度&空间复杂度3.C#写算法之数组的基本操作4.C#写算法之找出数组中重复的数字5.C#写算法之链表的基本操作6.C#写算法之栈的基本操作7.C#写算法之队列的基本操作8.C#写算法之散列表9.C#写算法之二叉树10.C#写算法之二叉堆11.C#写算法之优先队列12.C#写算法之排序算法13....
2020-01-21 10:50:30 1373
原创 C#写算法之快速排序
快速排序是从冒泡排序演变而来,快速排序之所以快,是因为使用了分治法。同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。快速排序是在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列的一边,比它晓得元素移动到数列的另一边,从而把数列拆解成两个部分。在分治法的思想下,原数列在每一轮都被拆分成两部分,每一部分在下一轮又分别被拆分成两部分,直到不可再...
2020-01-20 21:06:47 1877
原创 C#写算法之冒泡排序
bubble sort ,一种基础的交换排序。思想:相邻元素两两比较,当一个元素大于右侧相邻元素时,交换它们的位置;当一个元素小于或等于右侧相邻元素时,位置不变。using System;namespace CSharpTest01{ class Program { /// <summary> /// 冒泡排序 ...
2020-01-20 16:16:40 1701
原创 C#写算法之排序算法
根据时间复杂度的不同,主流的排序算法可以分为3大类。1.时间复杂度为O(n^2)的排序算法 冒泡排序、选择排序、插入排序 希尔排序(希尔排序比较特殊,它的性能略优于O(n^2),但又比不上O(nlogn))2.时间复杂度为O(nlogn)的排序算法 快速排序、归并排序、堆排序3.时间复杂度为线性的排序算法 计数排序、桶排序、基数排序排序还根据...
2020-01-20 15:17:53 1191
原创 C#写算法之优先队列
优先队列不再遵循先入先出的原则,分为两种情况:1.最大优先队列,无论入队顺序如何,都是当前最大的元素优先出队;2.最小优先队列,无论入队顺序如何,都是当前最小的元素优先出队;优先队列的实现:二叉堆的特性: 1.最大堆堆顶是整个堆中的最大元素; 2.最小堆的堆顶是整个堆中最小的元素。因此可以用最大堆实现最大优先队列,每一次入队就是堆的插入操作,出队就是删除...
2020-01-20 14:23:54 2083
原创 C#写算法之二叉堆
二叉堆本质上是一种完全二叉树,分为两个类型:1.最大堆2.最小堆最大堆的任意一个父节点的值,都大于或等于它左右孩子节点的值。最小堆的任意一个父节点的值,都小于或等于它左右孩子节点的值。二叉堆的根节点叫作堆顶。最大堆的堆顶是整个堆中最大元素;最小堆的堆顶是这个堆中最小元素。二叉堆的自我调整:把一个不符合堆性质的完全二叉树,调整为一个堆。1.插入节点;2.删除节点;...
2020-01-20 10:46:31 1480
原创 C#写算法之二叉树
在数据结构中,树的定义如下:树(tree)是n(n>=0)个节点的有限集,当n=0时,称为空树。在任意一个非空树中,有如下特点:1.有且仅有一个特定的称为根的节点。2.当n>1时,其余节点可分为m(m>0)个互不相交的有限集,每一个集合本身又是一个树,并称为根的子树。树有以下概念:根节点、父节点、兄弟节点、孩子节点。树的最大层级数,被称为树的高度或深度。...
2020-01-19 18:42:46 8578 5
原创 C#拓展Dictionary的TryGetValue方法
C#拓展Dictionary的TryGetValue方法以及新增方法。using System;using System.Collections.Generic;namespace CSharpTest01{ public static class DictionaryExtension { public static string TryGetVal...
2020-01-19 18:14:16 2974
原创 C#写算法之散列表(哈希表)
散列表也叫哈希表(hash table),这种数据结构提供了键(Key)和值(Value)的映射关系。只要给出一个Key,就可以高效地查找到它所匹配的Value,时间复杂度接近于O(1)。哈希表之所以查询效率这么高,是因为有一个中转站:本质上,哈希表也是一个数组,但数组是通过下标访问值,所以,输入的key可以从一个中转站中,通过某种方式,把Key和数组下标进行转换。这个中转站就叫作哈希...
2020-01-18 23:46:42 1963
原创 C#写算法之队列的基本操作
用数组来实现队列的一种比较好的方式是循环队列。循环队列要注意的是队头和队尾的下标:计算方式:1.新的队头下标:front = (front+1)%array.Length2.新的队尾下标:rear = (rear+1)%array.Length3.(队尾下标+1)%数组长度 = 队头下标 时为队列满了用数组实现循环队列的代码:using System;names...
2020-01-18 18:00:07 1728
原创 C#写算法之栈的基本操作
栈是一种线性的逻辑结构,可依赖数组和链表这两种物理结构实现。栈包含入栈、出栈的操作,是一种FILO的结构。用数据实现的栈代码如下:using System;namespace Test01{ public class MyStack { public int size = 0; int[] stack; ...
2020-01-18 17:12:13 1733
原创 C#写算法之链表的基本操作
链表 查找元素的时间复杂度是O(n),但是,更新、插入、删除的时间复杂度都是O(1)。对于需要频繁插入和删除元素的场景,用链表更为合适。单链表实现--代码:using System;namespace Test01{ public class Node { public int data; public Node next; ...
2020-01-18 16:23:28 1785
原创 C#写算法之找出数组中重复的数字
找出数组中重复的数字解1:时间复杂度O(n),空间复杂度O(n)的解法using System;using System.Collections;using System.Collections.Generic;namespace CSharpTest01{ class Program { // 找出数组中重复的数字 static...
2020-01-16 18:33:25 5276 1
原创 C#写算法之分析时间复杂度&空间复杂度
原文:《分析时间复杂度&空间复杂度,以二分查找和斐波那契数的递归和非递归算法为例》https://blog.csdn.net/w_y_x_y/article/details/78733667————————————————————————————————————————————————一、时间复杂度:实际是指程序运行次数,而不是程序运行时间1.我们一般讨论的是最坏时间复杂度...
2020-01-16 15:17:54 1755
原创 C#写算法之数组的基本操作
using System;namespace CSharpTest01{ // 自定义数组类 class MyArray<T> { public int Size { get { return size; } } private T[] array; private int size; pu...
2020-01-16 15:04:07 1375 1
原创 C# 不安全代码 unsafe
当一个代码块使用unsafe修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。指针是值为另一个变量的地址的变量,即,内存位置的直接地址。传递指针作为方法的参数using System;namespace CSharpTest01{ class TestPointer { public uns...
2020-01-16 11:40:45 1338
原创 C# 匿名方法
匿名方法(Anonymous methods)提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。using System;namespace CSharpTest01{ class Program { delegate string CallBack(int n); static void Int2String...
2020-01-16 11:08:05 1148
原创 C# 泛型(Generic)
Generic - 未注册的,泛型编程。泛型(Generic)的特性使用泛型是一种增强程序功能的技术,具体表现在以下几个方面:它有助于您最大限度地重用代码、保护类型的安全以及提高性能。 您可以创建泛型集合类。.NET 框架类库在System.Collections.Generic命名空间中包含了一些新的泛型集合类。您可以使用这些泛型集合类来替代System.Collection...
2020-01-16 10:58:48 1124
原创 C#实现观察者模式
什么是观察者模式?举一个例子:报社发行报纸 你订阅报纸, 一旦有新一期的报纸发行, 新报纸就会送到你家里, 只要你一直订阅, 你就一直会收到新报纸 你不再订阅报纸的时候, 就收不到以后的新报纸了 报社运营的时候, 一直会有人去订阅或者取消订阅报纸.发布者 + 订阅者 = 观察者模式Publishers + Subscribers = Observer Pattern在观察者...
2020-01-15 20:32:35 1507
原创 C# 把委托作为参数,并使用它调用方法
C# 把委托作为参数,并使用它调用方法。可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法。声明一个事件不过类似于声明一个进行了封装的委托类型的变量而已。using System;using System.Reflection;namespace CSharpTest01{ class Program ...
2020-01-15 16:59:27 3619
原创 2.C# 反射的使用
通过对一个类的操作,分别展示C#反射各个方法的使用。// 通过程序集名称返回Assembly对象// 通过Assembly获取程序集中类,参数必须是类的全名// GetMethod获取类方法// GetProperty获取有get和set封装的字段// GetField获取公有字段// GetField获取私有字段// Activator.CreateInstance创...
2020-01-15 15:10:04 1181
原创 Java多线程:(2)使用isAlive()和join()
使用isAlive()和join判断线程是否已结束,让主线程最后结束。package study;class NewThread implements Runnable{ String name; Thread t; NewThread(String threadname){ this.name = threadname; t =...
2020-01-14 14:45:34 1333
原创 Java多线程:(1)Java创建线程
大多数情况下,通过实例化一个Thread对象来创建一个线程。Java定义了两种方式(1)实现Runnable接口。(2)继承Thread类。第一种:(实现Runnable接口)package study;class NewThread implements Runnable{ Thread t; NewThread(){ t = new Thr...
2020-01-14 14:06:08 1077
原创 C++ 使用new和delete动态分配内存
话不多说,直接放代码:#include <iostream>using namespace std;int main(){ cout << "Program Start:\n"; double* pvalue = NULL; pvalue = new double; *pvalue = 123.456; cout << *pvalu...
2020-01-13 16:49:01 1139
原创 C++ 把lambda表达式和函数(指针)作为另一个函数参数传参
1.主要就是分为两个知识点(1)lambda表达式作为一个函数的参数(2)一个函数作为另一个函数的参数话不多说,直接上代码。看不懂的也别问我了。#include <iostream>using namespace std;int Add(int x, int y, int z) { return x + y + z;}int Sub(int x, int......
2020-01-13 14:26:22 4469 2
原创 2.Python和C#通信
用Python做服务器,C#做客户端,写了个非常简单的通信实践。代码丢在下面:Python:import socketimport sysdef start(): startServer()def startServer(): address = ('127.0.0.1', 31500) s = socket.socket(socket.AF_INE...
2020-01-07 14:21:43 3305 2
data-recovery Window数据恢复工具
2022-10-31
Editor Console Pro.unitypackage Version 3.971
2022-09-14
Mobile Tools Complete Game.unitypackage Version 1.4.24
2022-09-14
Octave3D-Level Design.unitypackage 2.4.3.5
2022-09-14
NodeCanvas.unitypackage NodeCanvas.unitypackage
2022-09-14
Character Pack Free Sample.unitypackage
2022-09-14
Odin Inspector and Serializer.unitypackage
2022-09-14
Remote Inspector - Android & iOS.unityPackage Version 1.6
2022-09-14
CustomShaderGUI.unitypackage
2021-06-30
Editor Console Pro 3.952.7z
2021-04-01
Dynamic+Bone+v1.1.5
2020-12-07
TOLUA热更新.pdf
2019-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人