
数据结构
文章平均质量分 76
水落0无痕
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一天一算法之选择排序
今天说说选择排序。首先和昨天写到的冒泡排序做下比较,冒泡排序是两两比较前者大就交换的排序,很可能交换的次数极多,要知道交换耗费的性能是要比比较耗费的性能高的。于是选择排序在交换的次数上进行了优化。从数组开始每次取一个数与后面的数比较,存下大数的值和索引位,在比较完一次后进行交换。交换总次数相对稳定。using System;/// /// 选择排序/// 思想是相对于冒泡来说较少交换原创 2015-10-16 18:46:42 · 454 阅读 · 0 评论 -
一天一算法之归并排序
归并排序是3个时间复杂度为O(nlogn)唯一一个稳定的算法,不过自己没有实现出来。。。 还好别人的代码看懂了。。。 这是原文链接:点击打开链接using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Sort{ class MergeSorter { /转载 2015-10-20 18:58:18 · 490 阅读 · 1 评论 -
快速排序的递归和非递归实现
对于一个游戏爱好者和游戏开发者,数据结构和算法显得极为重要,这些可以体现一个开发者的逻辑能力。而作为一个游戏开发小白,要争取每天一个算法,游戏之路漫漫而其修远兮,吾将上下而求索。这次写个快排的递归非递归算法,小白一个,有误之处多多见谅。废话不多说直接上代码。using System.Collections.Generic;/// /// QuickSort/// 主要思路,不停找中间原创 2015-10-12 17:16:51 · 658 阅读 · 1 评论 -
各种常用的插入排序(直接,折半,希尔)
本来打算昨天发,结果竟然学了一个晚上,自认为大学数据结构学得还不错,重新翻一遍竟然看了这么久还没有理解透彻,更加坚定了我一天一算法的决心。昨天和今天的排序一块写出来一块总结道插入排序里好啦。老样子,代码走起。using System;/// /// 插入排序/// namespace test{ class MainClass { public static void M原创 2015-10-14 12:44:36 · 604 阅读 · 0 评论 -
一天一算法之冒泡排序
这几天写项目,偷点懒,写个简单的。虽然冒泡排序简单,实际工程中也基本用不到,不过用来入门算法还是不错的。using System;/// /// 冒泡排序,最基本的排序/// 两两比较,碰到大的交换,碰到小的不变,最终大的放后面小的排到前面/// 由于比较次数很多,性能一般,实际用处较少/// 时间复杂度为n2/// namespace test{ class MainC原创 2015-10-15 21:04:06 · 356 阅读 · 0 评论 -
算法之树形结构
上班了,太忙了,标题一天一算法也去了,实在没那个时间和精力,但是算法和数据结构一定要学下去,这次说下C#实现的树形结构。树的遍历使用的先序遍历,两个类,一个是节点结构,一个是管理节点的树。采用链式存储。直接上代码。using UnityEngine;using System.Collections;using System.Collections.Generic;/// /// 文件夹原创 2015-11-24 16:47:33 · 2788 阅读 · 1 评论 -
算法之反转链表
问题很简单:反转一个链表。其实就是对链表的基础操作,思路是顺着链表头结点的next指针遍历整个链表。假设链表前三个节点分别为A、B、C。1.A->next = C;2.B->next = A;以A的next节点作为判断依据即可遍历整个链表并实现前后两个节点的指针反转。虽然思路很简单,但写的时候发现C的快忘得差不多了,为了复习C我在C++工程中完全以C的代码实现的。诸如new方法我用原创 2016-10-25 23:27:01 · 371 阅读 · 0 评论 -
一天一算法之堆排序
我所知道的三种常用的复杂度为O(nlogn)的算法有三种,快速排序,堆排序,归并排序,今天说说堆排序。首先说几个概念:1.堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 2.大根堆:所有节点的子节点比其自身小的堆 3.小根堆:所有节点的子节点比其自身大的堆 4.大根堆的堆顶元素就是这个堆中原创 2015-10-19 14:37:09 · 540 阅读 · 0 评论