gxc

永远不要认为有什么事情是理所当然的!

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

公告

共4页: 上一页 1 2 3 4 下一页 

2006年3月29日 #

摘要: using System;using System.Reflection;namespace CustomAttrCS{ public enum Animal{Dog = 1,Cat,Bird,} public class AnimalTypeAttribute : Attribute { protected Animal thePet; public...阅读全文
posted @ 2006-03-29 14:29 gxc 阅读(64) 评论(0) 编辑

2006年1月11日 #

摘要: 每个递归程序都有一个等价的非递归程序和它相对应,而计算的顺序相反。既然自顶向下的归并排序是一个递归,那么也应该有一个自底向上的非递归算法和它相对应。自底向上的归并排序对整个数组进行若干个m-m的归并排序,m的值从1开始每次变成原来的2倍。如果某次排序时,数组的长度刚好是m的倍数的话,那么该次排序的最后2个子数组对刚好大小是m和m,可以作m-m排序;否则只能作m-x排序,x比m要小。 ...阅读全文
posted @ 2006-01-11 11:15 gxc 阅读(839) 评论(1) 编辑

2006年1月10日 #

摘要: 自顶向下的归并排序采用的仍然是分治法。 void MERGESORT(int[] a,int l,int r) { if (l >= r) return; int m = (r - l) / 2; MERGESORT(a, l, m); MERGESORT(a, m, r); ...阅读全文
posted @ 2006-01-10 12:45 gxc 阅读(168) 评论(0) 编辑

2006年1月9日 #

摘要: 归并算法最原始的思想来源于将两个已排好序的数组a和b合并成一个排好序的数组c, void MergeAB(int[] c, int[] a,int[] b) { int M = a.Length; int N = b.Length; for (int i = 0, j = 0, k = 0; k b[j...阅读全文
posted @ 2006-01-09 23:20 gxc 阅读(356) 评论(2) 编辑

2005年12月27日 #

摘要: 假如有M个人想用以下方法来选出一个领袖:M个人围成一个圈,从某个人开始按顺序数数,每次数到N那个人出局,最后仅存的那个人就是领袖。用循环链表来表示这M个人,不断循环链表,每当数到N,那个结点去掉,直到只剩一个结点为止。class Node { public int index;//表示第几个人 public Node next; public Nod...阅读全文
posted @ 2005-12-27 20:07 gxc 阅读(1564) 评论(2) 编辑

摘要: 由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了。例如要查找100以内的质数,首先2是质数,把2的倍数去掉;此时3没有被去掉,可认为是质数,所以把3的倍数去掉;再到5,再到7,7之后呢,因为8,9,10刚才都被去掉了,而100以内的任意合数肯定都有一个因子小于10(100的开方),所以,去掉,2,3,5,7的倍数后剩下的都是质数了。...阅读全文
posted @ 2005-12-27 14:27 gxc 阅读(12495) 评论(6) 编辑

2005年12月24日 #

摘要: 先给出大根堆的定义:完全二叉树,任一非叶子结点都大于等于它的孩子,也就是说根结点是最大的。而且显然大根堆的任一棵子树也是大根堆。 堆排序的基本思想是:记录区的分为无序区和有序区前后两部分;用无序区的数建大根堆,得到的根(最大的数)和无序区的最后一个数交换,也就是将该根归入有序区的最前端;如此重复下去,直至有序区扩展至整个记录区。具体操作可按下面步骤实现:1。建大根堆2...阅读全文
posted @ 2005-12-24 15:46 gxc 阅读(1642) 评论(0) 编辑

2005年12月23日 #

摘要: 直接选择排序的思想是:每次从无序数组中选出一个最小的出来,放到已排好序的数组的最后。它比起冒泡排序有一个优点就是不用不断的交换,但是冒泡排序有一个选择排序不具有的好处,就是当某趟扫描没有发生交换的时候便可以终止算法。 public static void SELECTSORT(int[] R){ for (int i = 0; i < R.Length-1; i++) { ...阅读全文
posted @ 2005-12-23 23:48 gxc 阅读(439) 评论(0) 编辑

摘要: 快速排序又称为划分交换排序。其基本思想是:在待排序数列中任选出一个数作为基准,用这个基准将数列划分为左右两个子区,使得左子区的数都不大于基准数,而右子区的数都不小于基准数,称为完成第一次划分。如果左子区或右子区不为空,则对它进行同样的划分,直至为空为止。 要实现第一次划分,具体的做法是,设置两个指针,一个从右往左扫描,发现比基准数小的就和基准数交换;同时另一个从左往右扫描,发现比基准数大的就和基准...阅读全文
posted @ 2005-12-23 14:23 gxc 阅读(258) 评论(1) 编辑

2005年12月22日 #

摘要: http://www.w3coder.com/alphatalks/aspnet20.aspx阅读全文
posted @ 2005-12-22 10:08 gxc 阅读(55) 评论(0) 编辑

共4页: 上一页 1 2 3 4 下一页