文章分类 -  数据结构&算法

二叉树的概念与算法
摘要:原文链接:http://jpkc.nwpu.edu.cn/dzjc/jsjrj/text/chapter11/section01/text2r.htm概念与性质1.二叉树的基本概念 (二叉树建立的flash演示) 定义:二叉树是 n ( n ≥0)个元素的有限集,若 n =0,则称这棵二叉树是棵空二叉树;当 n > 0时,二叉树中存在唯一的称作根结点的元素root,且每个结点至多只有二棵子树,二棵子树有左右之分,其次序不能任意颠倒。 由于二叉树中每个结点具有其左右子树的次序不能任意颠倒这一特性,一棵包含三个结点的二叉树具有五种基本形态 ,如图11.4所示。 图11.4 包含三个结点的二叉 阅读全文

posted @ 2013-08-01 14:09 王丹小筑 阅读(440) 评论(0) 推荐(0)

【共享】C#实现所有经典排序算法汇总
摘要:http://www.cnblogs.com/dreamof/archive/2009/05/05/1450058.htmlC#实现所有经典排序算法 1、选择排序选择排序 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->class SelectionSorter { privateint min; publicvoid Sort(int[] arr) { for (int i =0; i class EbullitionSorter { .. 阅读全文

posted @ 2013-07-28 12:55 王丹小筑 阅读(107) 评论(0) 推荐(0)

C#实现:求表达式的值:1-2+3-4+……+m
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->static int Calculate(int m) { int result; if (m % 2 == 0) ... 阅读全文

posted @ 2008-08-03 19:53 王丹小筑 阅读(1047) 评论(0) 推荐(0)

【转】排序算法一览
摘要:原文链接:http://www.vchome.net/tech/datastruct/datasf23.htm 第10章 排序 10.1基本概念 排序(Sorting)是计算机程序设计中的一种重要操作,其功能是对一个数据元素集合或序列重新排列成一个按数据元素某个项值有序的序列。作为排序依据的数据项称为“排序码”,也即数据元素的关键码。为了便于查找,通常希望计算机中的数据表是按关键码有序的。... 阅读全文

posted @ 2008-08-02 14:12 王丹小筑 阅读(477) 评论(0) 推荐(0)

C#实现:插入排序
摘要:算法描述  一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:  1. 从第一个元素开始,该元素可以认为已经被排序  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置  5. 将新元素插入到该位置中  6. 重复步骤2[代码] 阅读全文

posted @ 2008-08-02 14:10 王丹小筑 阅读(195) 评论(0) 推荐(0)

C#实现:选择排序
摘要:直接选择排序 直接选择排序是一种选择排序,是一种不稳定的排序,时间复杂度为 O(n^2)。 基本思想 每一趟从待排序的数据元素中选出最小的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 40 10 20 15 ①{10} 40 20 15 将第一个元素 40 和无序区中最小的 10 交换 ②{10 15} 20 40 将第二个元素 40 和无序区中最小的 15 交换 ... 阅读全文

posted @ 2008-08-02 13:23 王丹小筑 阅读(222) 评论(0) 推荐(0)

C#实现:冒泡排序
摘要:方法一:[代码]方法二:[代码] 阅读全文

posted @ 2008-08-02 12:28 王丹小筑 阅读(163) 评论(0) 推荐(0)

【转】C#实现:快速排序
摘要:快速排序的基本思想是基于分治策略的。对于输入的子序列ap..ar,假如规模足够小则直接进行排序,否则分三步处理: 分解(Divide):将输入的序列ap..ar划分成两个非空子序列ap..aq和aq+1..ar,使ap..aq中任一元素的值不大于aq+1..ar中任一元素的值。 递归求解(Conquer):通过递归对ap..aq和aq+1..ar进行排序。 合并(Merge):由于对... 阅读全文

posted @ 2008-08-02 11:41 王丹小筑 阅读(243) 评论(0) 推荐(0)

C#递归实现:汉诺塔
摘要:汉诺塔背景:约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。 递归实现汉诺塔的方法如下: Code highlighting produced by Actipro CodeHighlighter (freeware... 阅读全文

posted @ 2008-08-02 10:53 王丹小筑 阅读(776) 评论(0) 推荐(0)

C#递归实现:斐波那契数列
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//斐波那契数列 指的是这样一个数列:1,1,2,3,5,8,13,21,34…… public static int Foo(int i) { ... 阅读全文

posted @ 2008-08-02 10:23 王丹小筑 阅读(1504) 评论(0) 推荐(0)

C#递归实现:阶乘算法
摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//求n的阶乘 private static int CalJieCheng(int n) { if (n 16) ... 阅读全文

posted @ 2008-08-02 10:12 王丹小筑 阅读(1890) 评论(0) 推荐(0)

导航