随笔分类 -  算法

摘要:约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数(从1开始报数),数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 c#代码,3种方法。 阅读全文
posted @ 2014-01-06 23:41 CatLight 阅读(1656) 评论(0) 推荐(0)
摘要:简单定义一棵二叉树的数据结构,并实现其先序(根)遍历、中序(根)遍历、后序(根)遍历算法。 阅读全文
posted @ 2013-11-30 17:46 CatLight 阅读(871) 评论(0) 推荐(0)
摘要:树中结点的最大层次数称为树的深度(Depth)或高度。 本文中以二叉树为例来讲述求树的深度的算法。 阅读全文
posted @ 2013-11-19 21:51 CatLight 阅读(2703) 评论(0) 推荐(1)
摘要:基数排序的基本思想,链式基数排序的c#实现。 阅读全文
posted @ 2013-08-06 23:52 CatLight 阅读(1871) 评论(0) 推荐(0)
摘要:2-路归并排序的c#实现。“归并”的含义是将两个或两个以上的有序序列组合成一个新的有序序列。 阅读全文
posted @ 2013-07-18 23:34 CatLight 阅读(399) 评论(0) 推荐(0)
摘要:堆排序算法c#实现。 阅读全文
posted @ 2013-07-09 23:26 CatLight 阅读(1373) 评论(0) 推荐(0)
摘要:快速排序算法的c#实现。 阅读全文
posted @ 2013-07-06 17:58 CatLight 阅读(802) 评论(0) 推荐(0)
摘要:排序算法之插入排序。插入排序是最简单(最容易理解)的一种排序算法。本文包含直接插入排序和折半插入排序。 其基本操作是将一个数插入到已经有序的数组中,那么我们要做的是确定插入到什么位置,所有在这个位置之后的数后移一个位置,从而给这个要插入的数腾出位置。所以关键点是找插入位置。 阅读全文
posted @ 2012-04-05 22:52 CatLight 阅读(251) 评论(0) 推荐(0)
摘要:求子数组最大和。输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。 如 { 8, -1, 10, -9, 2, 3, 5, -6, 2 }中的子数组的最大和是红色加粗部分的和18. 阅读全文
posted @ 2012-04-05 21:55 CatLight 阅读(332) 评论(0) 推荐(0)
摘要:反转语句。 如I love Beijing! 反转后输出 !Beijing love I 特点是指反转单词的顺序,其他字符(这个可以自己指定)不反转。且不能用内置函数,如Split和Substring。 阅读全文
posted @ 2012-04-05 13:12 CatLight 阅读(473) 评论(1) 推荐(0)
摘要:题目:(a) 求1~n内的所有素数。 (b) 找出一个无序的整数数组内的所有素数。 这两个题目是同样的解法,只不过形式变了一下。这里只对(a)给出解法,(b)类似。 阅读全文
posted @ 2012-04-04 17:26 CatLight 阅读(3781) 评论(0) 推荐(0)
摘要:题目:输入一个按升序排序的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、3、4、7、11、12、15和数字15。由于4+11=15,因此输出4和11。 阅读全文
posted @ 2012-04-03 23:32 CatLight 阅读(1206) 评论(0) 推荐(0)
摘要:一个循环实现冒泡排序。 这里说的一个循环并不是说时间复杂度就是O(n), 冒泡排序的时间复杂度只能是O(n*n). 所以说如果有这么一道题,它考的只是一个编程技巧,并不是说有什么更高效率的算法。 而且用一个循环写出来的算法没有用两个写出来的算法高效。因为要作一些额外的计算。本文给出了常见的冒泡写法及一个循环实现的冒泡写法。 阅读全文
posted @ 2012-03-14 22:33 CatLight 阅读(1065) 评论(0) 推荐(1)