- 博客(4)
- 资源 (11)
- 收藏
- 关注
原创 Josephus(约瑟夫)问题
<br />问题描述:<br />已知N个人(以编号1,2,3...N分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到M的那个人出列;他的下一个人又从1开始报数,数到M的那个人又出列;依此规律重复下去,直到剩下最后一个人。程序的意图是求出最后留下的人的编号。<br />/*******C++实现************/<br />#include<iostream><br />#include<cstdlib><br />#include<stdexcept><br />using namesp
2011-03-26 14:55:00 549
原创 先序递归创建二叉树,然后查找从根结点到任一给定结点的路径
<br />题记:程序意图如题。查找路径的方法很简单,就是对后序遍历算法稍加改变。从根结点到任一给定结点的逆向路径(即从任一给定结点到根结点的路径)一定是符合后序遍历序列的保序性,即在逆向路径中若A在B的后面,则在后序遍历序列中A也一定在B的后面,反之亦然。基于这个特点,我们可以得到这样的结论:逆向路径一定是后序遍历序列中去掉一些结点后的序列。至于去掉哪些结点,很简单,只要在后序遍历序列中加上一个限制条件:逆向路径中结点A的下一个结点一定是A的父结点。基于这个设计思想,写出了如下程序:<br />源代码:<
2010-12-23 21:09:00 1366
原创 链表实现多项式加法和乘法(C语言实现)
<br />#include<stdio.h><br />#include<stdlib.h><br />#include<string.h><br />typedef struct list<br />{<br /> int xishu;<br /> int power;<br /> struct list *next;<br />}list;<br />list* creat()<br />{<br /> list* head=(list*)malloc(sizeof(list)
2010-12-03 16:32:00 3586 1
原创 快速排序实现与分析
<br />问题描述:快速排序是数据结构中经典算法,在各种内部排序中拥有非常高的效率——时间复杂度为O(NlogN),同时常数因子最小,但是同时也有可能出现最坏情况——在待排序元素几乎有序或者完全有序时候性能非常差,时间复杂度退化到O(N*N)。对快速排序性能影响最关键的就是基准元素的选择,所以为了平滑最坏情况,本程序使用了随机选择基准元素的方法。当然,聪明的读者可能会这样问到,就算随机选择,也有可能随机选择到的基准元素为最大或者最小的元素(这是出现最坏性能的情况),当然我们不排除这种可能。不过鉴于我们随机
2010-07-05 18:02:00 435
中国科学技术大学计算机学院硕士研究生复试机试试题之给出一个整数分解成尽可能多的连续整数的和
2009-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人