![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
唐孝辉
QQ:1351105506
微信:xt411526
展开
-
第三章单链表(带有头结点的尾插法实现)
|原创 2019-04-02 17:04:39 · 185 阅读 · 0 评论 -
串的BF模式匹配算法
BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符依次比较下去,直到得出最后的匹配结果如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符;如果失配(即S[i]! = P[j]),令i = i - (j - ...原创 2019-04-08 16:47:10 · 1579 阅读 · 0 评论 -
分块查找
原创 2019-04-11 20:27:03 · 128 阅读 · 0 评论 -
直接插入排序
视图地址:https://visualgo.net/en/sorting /// <summary> ///直接插入排序 /// </summary> class Program { static void Main(string[] args) { int[] sum...原创 2019-04-11 23:01:18 · 514 阅读 · 0 评论 -
顺序查找
static int Search(int key,int[] array) { for (int i = 0; i < array.Length; i++) { if (array[i]==key) { ret...原创 2019-04-12 09:28:31 · 132 阅读 · 0 评论 -
折半插入排序
class Program { static void Main(string[] args) { int[] sum = { 0, 20, 50, 8, 12, 1, 400, 522 }; BinaryInsertSort(sum); for (int i = 1; i ...原创 2019-04-12 15:40:26 · 202 阅读 · 0 评论 -
希尔排序
class Program { static void Main(string[] args) { int[] sum = {8, 9, 1, 7, 2, 3, 5, 4, 6, 0}; ShellSort(sum); for (int i = 1; i < sum...原创 2019-04-12 16:35:29 · 91 阅读 · 0 评论 -
C#冒泡排序(bubbleSort)
冒泡排序的核心思想是相邻的两个数比较一直遍历,找出最大火最小的数放在尾部。缺点是重复比较多耗费性能。原创 2018-10-27 13:49:24 · 295 阅读 · 0 评论 -
分治法求数组中连续和最大子数组
一、暴力解法实现输入一个整形数组,求数组中连续的子数组使其和最大对数组内每一个数A[i]进行遍历,然后遍历以它们为起点的子数组,比较各个子数组的大小,找到最大连续子数组 public static void MaxArray(int[] array) { int maxValue = array[0]; //记录最大子数组的和 ...原创 2019-04-09 22:18:24 · 1487 阅读 · 0 评论 -
堆排序
堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。...原创 2019-04-11 15:35:50 · 79 阅读 · 0 评论 -
链队列
interface IQueue<T> { int GetLength(); void Clear(); void EnQueue(T elem); void Dequeue(); T Peek(); bool IsEmepty();/// <summa...原创 2019-04-08 09:42:13 · 81 阅读 · 0 评论 -
C#简单选择排序 (sortselecting)
int[] array = new[] {14, 10, 8, 2, 9,5,1,4,6,7}; for (int i = 0; i &lt; array.Length; i++) { //默认arry[i]是最小值 i是最小值的索引位置 int minvalue = array[i]; ...原创 2018-10-27 14:38:52 · 575 阅读 · 0 评论 -
二分查找法
二分查找:给定数组是有序的,给定一个key值。每次查找最中间的值,如果相等,就返回对应下标,如果key大于最中间的值,则在数组的右半边继续查找,如果小于,则在数组左半边查找,。最终有两种结果,一种是找到并返回下标,第二种是没找到(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半...原创 2019-04-10 15:31:02 · 166 阅读 · 0 评论 -
二叉树的顺序存储和遍历
class Tree<T> { private T[] data; private int count; public Tree(int capacity) { data=new T[capacity]; count = 0; ...原创 2019-04-10 17:12:09 · 1326 阅读 · 0 评论 -
栈的顺序存储
** interface IList<T> { bool IsEmpty(); int GetLength(); void Push(T elem); void Pop(); T peek(); void Clear(); void Traverse();...原创 2019-04-06 14:37:40 · 109 阅读 · 0 评论 -
链栈
interface IList<T> { bool IsEmpty(); int GetLength(); void Push(T elem); void Pop(); T peek(); void Clear(); } /// <summa...原创 2019-04-06 16:58:01 · 108 阅读 · 0 评论 -
二叉排序树的链式存储查找和插入删除操作
/// <summary> /// 节点类 /// </summary> class Node { //三叉链表中,每个结点除了存储本身的数据外,还应该设置两个指针域left和right, //它们分别指向左孩子和右孩子,当需要在二叉树中经常寻找某结点的双亲 //每个结点还可以加一个...原创 2019-04-10 22:06:24 · 674 阅读 · 0 评论 -
通过栈Stack实现括号匹配的语法检查
算法的设计思想:出现左括弧则进栈;出现右括弧则首先检测栈是否为空,若栈空则表明此右括弧多余,表达式不匹配。否则和栈顶数据比较,若匹配则栈顶出栈。否则表明表达式不匹配;最后若栈空且没有做鱼右括弧则匹配正确,否则表明不匹配。...原创 2019-04-07 13:43:36 · 684 阅读 · 0 评论 -
队列的顺序存储
interface IQueue<T> { int GetLength(); void Clear(); void EnQueue(T elem); void Dequeue(); T Peek(); bool IsEmepty(); } ...原创 2019-04-07 22:10:49 · 175 阅读 · 0 评论 -
第一章数据结构的研究内容
原创 2019-04-02 12:28:15 · 370 阅读 · 0 评论 -
第二章线性表
|原创 2019-04-01 15:06:26 · 162 阅读 · 0 评论 -
快速排序
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 快速排序 //***对相同元素, 不稳定的排序算法***{ //相对来说,快速排序数值越大速度越快 。 快速排序是所有排序里面最快的 class Progr...原创 2019-04-13 14:40:04 · 115 阅读 · 0 评论