博文

http://acm.pku.edu.cn/course/,关于问题求解的好网址(2006-10-10 10:08:00)

摘要:http://acm.pku.edu.cn/course/......

阅读全文(2887) | 评论:0

问题求解 与 程序设计(2006-10-10 10:04:00)

摘要: ·课程概要 开课单位:信息科学技术学院
课程编号:00831630
课程名称:问题求解与程序设计
课程类型:全校通选课
学时学分:学分2.0,总34学时
先修课程:计算概论
授课时间:周二9-10节
授课教室:电教125
主讲教师:李文新
助    教:hawking,赵静
·最新通知 (5.26) 期末考试安排:5月29日上午9:00至11:00,计算中心4号机房
(4.27) 参考书目:《程序设计基础》,吴文虎 著,清华大学出版社,2003
       《计算机程序的构造与解释》,裘宗燕 译,机械工业出版社,2004
(4.04) 开始提交出题作业,好的题目将推荐给POJ月赛
(3.10) 一旦被采纳,即可获得奖金!@_@
(3.22) 总完成题数即时排名
(3.10) 上机安排:周日中午12:30至2:30,计算中心4号机房
(3.10) 公用帐号:jtx75-6:jsjtxk@student6
(3.10) 上机内容:网上练习赛
(2.17) 觉得课程太难的同学请看这里 ·课程内容 周次 主题 相关材料和链接 作业 第一周(2.10) 引言 题目1:1326 Mileage Bank
题目2:1148 Utopia Divided
1005
1006 第二周(2.17) 对局问题 张一飞解题报告:一类博弈问题的解答过程 1008
1013 第三周(2.24) 称球问题 1008参考程序 1013参考程序
Conqueror's batalion: Task Solution 1016
1048 第四周(3.2) 模拟问题 1016参考程序 1048参考程序 1207
1028 第五周(3.9) 问题抽象 1147 Binary codes 1063
第六周(3.16) 动态规划......

阅读全文(3553) | 评论:0

阳光奥赛(www.noi3000.com),好网站(2006-08-15 21:47:00)

摘要:阳光奥赛(www.noi3000.com) ---------算法部分--------转自:http://www.noi3000.com/ShowClass2.asp?ClassID=4---------  [图文]图论的意义 (noi3000,2006年4月27日,192)
 程序设计中几何算法二 (noi3000,2006年4月17日,108)
 程序设计中几何算法一 (noi3000,2006年4月17日,129)
 汉诺塔问题 (noi3000,2006年3月13日,478)
 八皇后问题 (noi3000,2006年3月13日,298)
 算法设计(动态规划法) (noi3000,2006年3月13日,142)
 算法设计(分治法) (noi3000,2006年3月13日,198)
 算法设计(贪婪法) (noi3000,2006年3月13日,149)
 算法设计(回溯法2) (noi3000,2006年3月13日,140)
 算法设计(回溯法1) (noi3000,2006年3月13日,200)
 算法设计(递归法) (noi3000,2006年3月12日,154)
 算法设计(递推法) (noi3000,2006年3月12日,53)
 算法设计(穷举搜索法) (noi3000,2006年3月12日,63)
 算法设计(迭代法) (noi3000,2006年3月12日,69)
 基本算法讲座之数学篇 (noi3000,2006年3月5日,76)
 排序算法简要说明 (佚名,2005年11月7日,88)
 什么是算法 (cz1800,2005年11月7日,108) ----------------------------------------------------------------------......

阅读全文(3289) | 评论:0

二分法查找(转)(2006-08-15 21:34:00)

摘要:作者tag:c/c++ CSDN 推荐tag:web  function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}  二分法——查找、排序以及库函数bsearch的用法 http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.2.2.1.htm 二分法查找 1、二分查找(Binary Search)
     二分查找又称折半查找,它是一种效率较高的查找方法。
     二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。 2、二分查找的基本思想
     二分查找的基本思想是:(设R[low..high]是当前的查找区间)
 (1)首先确定该区间的中点位置:
                
 (2)然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找,具体方法如下:
     ①若R[mid].key>......

阅读全文(4006) | 评论:0

《C程序设计》第七章算法之排序算法(2006-04-30 21:45:00)

摘要:排序算法总结     在第七章《数组》中涉及到选择法排序以及冒泡法排序,排序算法在《C程序设计》中的位置还是挺重要的。今天我们来总结一下排序算法。   一、交换法。   在前段时间,我们已经学过了对两个数或者三个数进行排序。用的方法是交换法。 交换法的原理是:要交换a,b杯的水,要借助空杯cup,先把a杯的水倒入cup中,此时a空,再把b杯中的水倒入a中,此时b空,最后把cup中的水倒入b中,实现a,b杯水的交换。 例如,要使a,b两个数由小到大排列。 if(a>b){ cup=a;a=b;b=cup;}   要使a,b,c由小到大排列。 if(a>b){cup=a;a=b;b=cup;} if(a>c){cup=a;a=c;c=cup;} if(b>c){cup=b;b=c;c=cup;}   二、选择法排序。   其原理是:从数据中选择最小的同第一个值交换,在从省下的部分中 选择最小的与第二个交换,这样往复下去。   交换法 选择法 for(i=1;i<=9;i++)
for(j=i+1;j<=10;j++) if(a[i]>a[j]) 
{temp=a[i];
a[i]=a[j];
a[j]=temp;
} for(i=1;i<=9;i++) {  min=i; for(j=i;j<=10;j++)   if(a[min]>a[j])min=j;   temp=a[i];   a[i]=a[min]   a[min]=temp; }  

      三、冒泡法排序,也叫起泡法排序。   冒泡法排序的思路是:将相邻两个数比较,将小的调到前头(由小到大排)。 若有n个数,则有进行n-1......

阅读全文(4869) | 评论:1

《C程序设计》第五章第六章算法总结(2006-04-27 20:35:00)

摘要:第五章 选择结构 1. 求闰年    判别某一年year是否为闰年。条件是:    能被4整除,但不能被100整除;能被400整除。    if((year%4==0&year%100!=0)||(year%400)==0)
printf("%d is a leap year",year);
else
printf("%d is not a leap year",year);   2. 交换法    空杯原理:要交换a、b杯的水,要借助第三个杯cup,先把a杯的水倒入到cup中,此时a空,再把b杯的水倒入a中,此时b空,最后把cup中的水倒入b杯,这样就实现了a、b杯水的交换。 例1:按代数值由小到大次序输出两个数。 if(a>b) {cup=a;a=b;b=cup;}      例2:求三个数a,b,c由小到大顺序输出。    用交换法,算法是,使最小值赋值给a,第二小赋值给b,最大值赋值给c。    所以a 先与b 比较,如果a>b,就交换它们的值;然后a与c比较,如果a>c就互换。这两个步骤得到a最小。最后比较b和c,如果b>c,就交换它们的值。 if(a>b) {cup=a;a=b;b=cup;}
if(a>c) {cup=a;a=c;c=cup;}
if(b>c) {cup=b;b=c;c=cup;}   /* 这样,书本上的习题“输入四个整数,要求按由大小顺序输出。”就难不倒你了。 */     第六章 循环控制 1. 累加(循环应用一)    如书本上的例题:1+2+3+……+100    定义两个变量:sum存累加和;i为每一次循环的加数。    变量初始值:sum=0;i=1;    每次循环结束前,要计算下一次i的值。    While(i<=100)    { sum=sum+i; /*sum存累加和*......

阅读全文(2941) | 评论:0