阐述快速排序方法的基本思想;
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
一个简单的ATM取款机系统。用户塞入借记卡,并输入取款密码。系统读取卡的ID号,通过远程通讯获取银行中央数据库中存储的该账户密码,若比较后两者一致,则显示账户详细信息。若用户输入取款数额,则点钞送出、打印取款凭条并退回用户的借记卡,并将该笔业务信息(时间、ATM机编号、金额等)更新到中央数据库。若三次密码输入错误,则没收借记卡并打印吞卡凭条。(20分)
1. 试分析该系统的源点/终点、处理、数据存储和数据流。
2. 试画出该系统的功能级数据流图。
3. 试采用自顶向下、模块化的方法,画出该系统的功能层次图。
(1)分析略
源点、终点:ATM,用户
处理:识别借记卡、读取卡id、接受密码、比较账号密码、显示账户、点钞、打印凭条、退卡、存储中央数据、没收借记卡等
数据存储:
数据流:账户信息、密码、存储记录等
(2)数据流图略
已知输入序列为{15,39,28, 55,37,26,92,12},请给出采用快速排序排序法对该序列进行升序排序的过程。 (12分)
第一趟:12 15 28 55 37 26 92 39
第二趟:12 15 26 28 37 55 92 39
第三趟:12 15 26 28 37 55 92 39
第四趟:12 15 26 28 37 39 55 92
二、已知一棵二叉树的后序序列为GDBEFCA,中序序列DGBAECF,根据给定的两种遍历序列确定二叉树,并画出该二叉树。 (12分)
由后序序列可知该二叉树的根结点为A;由中序序列知左子树包括D、G、B,右子树包括E、C、F。再观察后序序列,左子树在其中的序列为GDB,所以左子树的根结点为B;由中序可知结点D、G都在B的左边,即D和G在B的左子树上;再观察后序,可知D为G的双亲结点;由于在中序序列中的G在D的右边,所以G为D的右孩子。A的右子树部分确定的方法同左子树树似。