摘要:传说中的八皇后问题,想了n年,想的头疼,想的睡不着觉,想的不吃饭!上网搜别人的程序,一看就头疼,不是很复杂代码凌乱没法看就是千篇一律的blog抄袭,就是不想看。今天突然豁然开朗,思路清晰的不得了,emacs上几行代码变实现:: ) using System;class Queen{ int[] data = new int[8]; //记录每一行的皇后放置位置 int c...
阅读全文
摘要:看别人blog发现了如下一个题目:1993年美国计算机程序设计资格赛试题第一题:分数变小数写出一个程序,接受一个以N/D的形式输入的分数,其中N为分子,D为分母,输出它的小数形式。如果它的小数形式存在循环节,要将其用括号括起来。例如:1/3=.33333...表示为.(3),又如4l/333=.123123123...表示为.(123)。一些转化的例子:1/3=.(3)22/5=4.41/7=.(...
阅读全文
摘要:看见别人的blog里有个问题是这样的:1*3*5*7....*1997的值是多少,它是用数组解决的,觉得不是很好,它定义了一个4000维的数组,然而这个4000是怎么得出的?不知道,因此,我用双向链表解决此问题: using System;class Node{ int _data; public Node before; public Node next; public ...
阅读全文
摘要:二分递归查找,很简单,就不注释了: ) 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...
阅读全文
摘要:用递归的插入排序方式,时间复杂度和普通的插入排序一样,没什么本质的改进,无非循环变递归而已: ) 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; ...
阅读全文
摘要:基于分治思想的合并排序,算法导论中的思考题,不加哨兵牌(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[]...
阅读全文
摘要:传说中的Stooge排序,不知效率如何,也没弄明白排序原理,等有时间了研究一下,也请大虾指教: using System;class Stooge{ public void sort(int[] data, int i ,int j) { if (data[i]>data[j]) { int t = data[i]; ...
阅读全文
摘要:最简单的排序,写出来复习一下,不做注释了: ) 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...
阅读全文
摘要:简单的,只为自己写下来熟悉一下,就不用注释了,呵呵: 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]; ...
阅读全文