Chapter 3 现实模拟
3.1 简单模拟
3.2 栈及其应用
3.3 队列及其应用
3.4 基于二叉堆的优先队列及其应用
3.5 二叉树及其应用
有些计算问题反映的是现实世界中某事物的发展过程。很多情况下,模拟事物发展过程,跟踪反映事物属性的数据变化规律,往往可以得到问题的解。
3.1 简单模拟
如果事物的发展是有节律地重复某些步骤,在重复过程中遵循一定的规律发展,我们往往可以通过循环、条件分支等模拟出事物的发展过程。我们在第1~2章已经看到过多个这样的事物例子。作为简单模拟方法的运用,这里我们再来看两个这样的问题。
问题3-1 对称排序

问题描述
你供职于由一群丑星作为台柱的信天翁马戏团。你刚完成了一个程序编写,它按明星们姓名字符串的长度非降序(即当前姓名的长度至少与前一个姓名长度一样)顺序输出他们的名单。然而,你的老板不喜欢这种输出格式,提议输出的首、尾名字长度较短,而中间部分长度稍长,显得有对称性。老板说的具体办法是对已按长度排好序的名单逐对处理,将前者放于当前序列的首部,后者放在尾部。如输入样例中的第一个案例,Bo和Pat是首对名字,Jean和Kev
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



