Gear.Turbo

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

通过实例学F# - 汉诺塔(hanoi)
摘要:F#以递归方式解决汉诺塔问题:[代码]Note: #light - Lightweight syntax, 是为了保持语法兼容Caml系列语言,F#从Caml系列语言发展而来。微软建议在代码中保留此关键字。代码缩进 - light代码不允许TAB缩进。rec - 表明该函数为递归函数,即可以调用本身。begin/end - 同C系列语言不同,F#以begin/end 定义语句块。printfn -... 阅读全文

posted @ 2009-06-24 13:05 lsp 阅读(192) 评论(0) 推荐(0)

八皇后问题(C#)
摘要:传说中的八皇后问题,想了n年,想的头疼,想的睡不着觉,想的不吃饭!上网搜别人的程序,一看就头疼,不是很复杂代码凌乱没法看就是千篇一律的blog抄袭,就是不想看。今天突然豁然开朗,思路清晰的不得了,emacs上几行代码变实现:: ) using System;class Queen{ int[] data = new int[8]; //记录每一行的皇后放置位置 int c... 阅读全文

posted @ 2007-01-18 17:42 lsp 阅读(637) 评论(0) 推荐(0)

分数化小数(C#)
摘要:看别人blog发现了如下一个题目:1993年美国计算机程序设计资格赛试题第一题:分数变小数写出一个程序,接受一个以N/D的形式输入的分数,其中N为分子,D为分母,输出它的小数形式。如果它的小数形式存在循环节,要将其用括号括起来。例如:1/3=.33333...表示为.(3),又如4l/333=.123123123...表示为.(123)。一些转化的例子:1/3=.(3)22/5=4.41/7=.(... 阅读全文

posted @ 2007-01-18 13:21 lsp 阅读(1703) 评论(0) 推荐(0)

1*3*5*7....*1997
摘要:看见别人的blog里有个问题是这样的:1*3*5*7....*1997的值是多少,它是用数组解决的,觉得不是很好,它定义了一个4000维的数组,然而这个4000是怎么得出的?不知道,因此,我用双向链表解决此问题: using System;class Node{ int _data; public Node before; public Node next; public ... 阅读全文

posted @ 2007-01-17 09:13 lsp 阅读(200) 评论(0) 推荐(0)

C#二分查找
摘要:二分递归查找,很简单,就不注释了: ) using System;class BinarySearch{ public int search(int[] A, int p, int q, int key) { int result = -1; if (p >= q && key == A[p]) { res... 阅读全文

posted @ 2007-01-11 17:40 lsp 阅读(2229) 评论(6) 推荐(1)

C#递归插入排序
摘要:用递归的插入排序方式,时间复杂度和普通的插入排序一样,没什么本质的改进,无非循环变递归而已: ) using System;class Insertion2{ public void sort(int[] A, int p, int q) { if (p=0 && A[i]>key) A[i+1] = A[i--]; A[i+1] = key; ... 阅读全文

posted @ 2007-01-11 16:34 lsp 阅读(493) 评论(0) 推荐(0)

C#合并排序
摘要:基于分治思想的合并排序,算法导论中的思考题,不加哨兵牌(sentinel card)的实现方式,实现很简单 : ) using System;class MergeSort{ public void merge(int[] A, int p, int q, int r) { int n1 = q-p+1; int n2 = r-q; int[]... 阅读全文

posted @ 2007-01-11 12:52 lsp 阅读(630) 评论(0) 推荐(0)

C#Stooge排序
摘要:传说中的Stooge排序,不知效率如何,也没弄明白排序原理,等有时间了研究一下,也请大虾指教: using System;class Stooge{ public void sort(int[] data, int i ,int j) { if (data[i]>data[j]) { int t = data[i]; ... 阅读全文

posted @ 2007-01-10 22:45 lsp 阅读(384) 评论(1) 推荐(0)

c#选择排序
摘要:最简单的排序,写出来复习一下,不做注释了: ) using System;class Insertion{ public void sort(int[] data, int len) { for (int i=0; i<len-1; i++) for (int j=i+1; j<len; j++) if (data[j]<dat... 阅读全文

posted @ 2007-01-10 22:43 lsp 阅读(681) 评论(2) 推荐(0)

C#插入排序
摘要:简单的,只为自己写下来熟悉一下,就不用注释了,呵呵: using System;class Insertion{ public void sort(int[] data, int len) { for (int i=1; i=0 && data[j]>key) { data[j+1]=data[j]; ... 阅读全文

posted @ 2007-01-10 18:00 lsp 阅读(337) 评论(0) 推荐(0)

C#冒泡排序
摘要:昨天把快速排序造出来了,把其它的排序也再复习一下吧,呵呵: )冒泡排序所谓冒泡,就是在水中垂直排列着一排大小顺序错乱的气泡,现在要求他们从大(小)到(大)排好队。于是众气泡们商量出了一条规则以便有规矩而不慌乱的排好顺序。据其中一气泡透露消息,它们的规则是这样的:从最底下的气泡开始往上浮动,如若碰到上面的气泡比它小,就对它说:兄弟,对不住了,您小,不能在上面,咱俩必须换个位置。一番交涉之后,气泡上升... 阅读全文

posted @ 2006-12-28 00:47 lsp 阅读(600) 评论(2) 推荐(0)

c#快速排序
摘要:昨天闭门造车,造出了二叉树的生成和遍历。今天继续造车,记得有次面试问我快速排序的算法。我当时想你们公司又不搞芯片设计啥的,干吗效率这么高?就做普通的一些管理软件,用现在的机器随便一个排序就够用了嘛!知道你们这叫啥?叫人才高消费!呵呵(葡萄酸)。: )当时只说了用递归和大体的思想,还真没实现过,今天经过一番造车,造出来了,不知道和传说中高人的快速算法有啥区别,也不清楚自己造的算不算快速排序呢。: )... 阅读全文

posted @ 2006-12-26 17:22 lsp 阅读(284) 评论(0) 推荐(0)

c#二叉树
摘要:想来自己一个非计算机专业的学生,学习编程以来受到了众多人的质疑。也不奇怪,毕竟什么都是自学的,而自学在很多情况下都难成体系。有次gf向2位做石油软件的仁兄请教:我作为一地质专业出身,凭个人对编程的爱好从事石油软件行业如何?2仁兄很诚恳的分析:“从石油方面来讲:你学地质的跟石油有差距;从计算机方面来讲,你根本不是学计算机的,不懂算法,所以不适合干这行。”分析的严谨啊,分析的透彻啊!2点疑问:a.你学... 阅读全文

posted @ 2006-12-26 00:26 lsp 阅读(2081) 评论(6) 推荐(0)

汉诺塔c#
摘要:今天突然想起来本科时期自学pascal遇到汉诺塔问题时的困惑,现在刷牙间静心一想,思路是何等的清晰,于是把c#代码下写来,以做记录: using System; using System.Text.RegularExpressions; class... 阅读全文

posted @ 2006-12-22 23:27 lsp 阅读(625) 评论(0) 推荐(0)

导航