《江苏师范大学数据结构总复习总结ppt课件.ppt》由会员分享,可在线阅读,更多相关《江苏师范大学数据结构总复习总结ppt课件.ppt(61页珍藏版)》请在三一办公上搜索。
1、复习,第一章绪论,本章要点:(1)有关数据结构的基本概念,包括:数据、数据对象、数据元素或者数据成员、数据结构、数据类型等;数据抽象、抽象数据类型、数据结构的抽象层次等。(2)算法设计与分析:算法的定义和算法的特性 算法的设计方法:包括问题解决的基本思路、算法设计的基本步骤、算法的实现 算法的性能分析:包括算法的性能标准,算法的后期测试;算法的事情估计;空间复杂度度量;时间复杂度度量;时间复杂度的渐进表示法,1、顺序存储结构中数据元素间的逻辑结构是由()来表示的,链接存储结构中数据元素间的逻辑关系是由()表示。A 指针 B 逻辑顺序 C 存储位置 D 问题上下文2、算法的时间复杂度与()有关。
2、A 问题规模 B 计算机硬件的运行速度 C 源程序的长度 D 编译后执行程序的质量3、某算法的时间复杂度为O(n2),表明该算法()A 问题规模是n2 B 问题规模与n2成正比 C 执行时间等于n2 D 执行时间与n2成正比,C,A,A,D,4、算法是一个有穷的指令集,它为解决某一特定任务规定了一个运算序列。它应当具有输入、输出、()、有穷和可行性等特性。5、算法效率的度量分为()和()。前者主要通过在算法的某些部位插装时间函数来测定算法完成某一个规定功能所需要的时间。而后者不实际运行算法,它是分析算法中语句的执行次数来度量算法的时间复杂度。6、程序所需要的存储空间包含两个部分()和()。前者
3、空间的大小与输入输出数据的个数多少,数值大小无关。后者空间主要包括其大小与问题规模有关的成分变量所占空间等等。,确定性,事后测量,事前估计,固定部分,可变部分,7、有实现同一功能的两个算法A1和A2,其中A1的渐进时间复杂度是,A2的渐进时间复杂度为。仅就时间复杂度而言,具体分析这两个算法哪个好。,比较算法好坏,需要比较两个函数2n和n2当n=1时,2112,算法A2好于A1当n=2时,22=22,算法A2与A1相当当n=3时,2342,算法A2好于A1当n4时,24n2,算法A2好于A1当n时,算法A2在时间上好于A1,第二章线性表,本章要点:(1)线性表的定义和特点,包括:线性表的定义,注
4、意几个关键词:有穷、序列、数据元素;线性表特点:唯一前驱和唯一后继。线性表元素类型 线性表与向量(一维数组)的关系,注意它们间的异同 线性表的操作归类:包括访问操作(搜索,遍历)、维护操作(插入、删除),设置操作(初始化或者置空),判断操作(判空、判满)、游标操作(前驱、后继),第二章线性表,本章要点:(2)线性表的顺序存储表示:顺序表的静态和动态的C结构定义,以及C+类定义 顺序表的特点:即元素的逻辑顺序和物理顺序的一致性 顺序表的主要操作,如插入、删除、搜索等的实现算法 掌握主要功能的关键语句:如遍历整个顺序表、遍历到指定节点的语句;插入、删除时成片移动元素的语句等掌握简单的效率分析,包括
5、搜索算法中数据比较次数的计算,插入、删除的数据移动次数的计算,第二章线性表,本章要点:(3)线性表的链接存储表示:单链表的C结构定义,以及C+类定义 单链表的特点:即元素的逻辑顺序和物理顺序的不一致性 单链表的主要操作,如插入、删除、搜索等的实现算法。注意无附加头结点和带附加头结点的单链表上操作实现的差异 掌握主要功能的关键语句:如遍历整个顺序表、遍历到指定节点的语句;无头结点单链表的表头插入、删除;带头结点单链表的搜索操作;带头结点单链表的插入、删除运算以及单链表的创建、释放、逆置、分裂、合并等运算有序单链表的主要操作:如搜索、插入、删除等,以及分裂,合并,剔除重复元素等运算,1、在下列关于
6、线性表的叙述中正确的是()A 线性表的逻辑顺序和物理顺序总是一致的 B 线性表的顺序存储表示优于链式存储表示 C 线性表若采用链式存储表示时,所有存储单元的地址可连续或者可不连续 D 每种数据结构都应具备三种基本运算插入、删除和查找,2、若长度为n的非空线性表采用顺序存储结构,在表的i个位置插入一个数据元素,i 的合法值应该是()A i0 B 1=i=n C 0=i=n-1 D 0=i=n,3、对于顺序存储的线性表,其算法的时间复杂度为O(1)的运算应()A 将n个元素从小到大排序 B 从线性表中删除第i个元素(1=i=n)C 查找第i个元素(1=i=n)D 在第i个元素(1=i=n)后插入一
7、个新元素,4、若长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()A O(n)B O(1)C O(n2)D O(log2n),5、已知L是带表头的单链表,L是表头指针,则摘除首元结点的语句是()A L=L-link B L-link=L-link-link C L=L-link-link D L-link=L,6、已知单链表A长度为m,单链表B长度为n,若将B接在A的末尾,在没有链尾指针的情形下,算法的时间复杂度应为()A O(1)B O(m)C O(n)D O(m+n),7、从一个具有n个结点的有序单链表中查找其值等于x的结点时,在查找成功的情况下,平均需要比较()个结点。A n B
8、 n/2 C(n-1)/2 D(n+1)/2,8、在一个具有n个结点的单链表中插入一个新结点,并可以不保持原有顺序的算法的时间复杂度是()A O(1)B O(n)C O(n2)D O(nlog2n),9、给定有n个元素的一维数组,建立一个有序单链表的时间复杂度是()。A O(1)B O(n)C O(n2)D O(nlog2n),判断一个带附加头结点的双向循环链表L是否对称相等的算法如下所示,请在算法中的_中填入正确的语句,bool symmetry(DblList DL)bool sym=true;DblNode*p=DL-rLink,*q=DL-lLink;while(p!=q|p-lLin
9、k!=q|)if(p-data=q-data)_ _ elsesym=false;return sym;,sym=true,p=p-rLink,q=q-lLink,第三章 栈和队列,本章要点:(1)栈的队列定义和特点,包括:栈的定义,注意栈顶进出、栈底不能进出,顺序存取的概念,栈的先进后出的特点 队列的定义,注意队头出、队尾进、顺序存取的概念,队列的先进先出的特点 注意区分栈、队列、向量。栈的队列是顺序存取,向量是直接存取 进栈、出栈、判空、置空操作的使用栈空、队空在实际使用时不算出错,它标志某种处理的结束 栈满、队满在实际使用时用力判断可能的出错,第二章线性表,(2)栈的存储表示及其基本运算
10、的实现:顺序栈的类结构定义 顺序栈的栈顶指针实际指示的位置,以及如何用栈顶指针表示顺序栈的栈空、栈满条件 顺序栈的进栈、出栈运算的实现。注意操作的前置条件和后置条件,以及在参数表中应用参数的作用双栈共用一个数组的进栈、退栈、置空栈、判栈空算法以及栈满、栈空条件链式栈的结构定义,注意链式栈的栈顶指针实际指示的位置 链式栈的进栈、出栈运算的实现,注意链式栈的栈空条件 栈满时的扩充算法,第二章线性表,(3)队列的存储表示及其基本运算的实现 循环队列的雷结果定义,注意对头指针和队尾指针进退的方向,以及如何用这两个指针判对空和队列满 循环队列的进队、出队的取模操作的实现 使用对头指针front和队列长度
11、length实现循环队列时进队列和出队列的操作 链式队列的类结构定义链式队列的进队和出队列操作的实现 双端队列的进队、出队运算的实现 优先级队列的存储结构,第二章线性表,(4)栈的应用,1、已知一个栈的进栈序列为1,2,3,,n,其输出序列的第一个元素是i,则第j个出战元素是()A j-i B n-i C j-i+1 D 不确定,2、已知一个栈的进栈序列为1,2,3,,n,其输出序列是p1,p2,p3,pn。若p1=n,则pi的值是()A i B n-i C n-i+1 D 不确定,3、已知一个栈的进栈序列为1,2,3,,n,其输出序列是p1,p2,p3,pn。若p1=3,则p2的值是()A
12、一定是2 B 一定是1 C 可能是1 D 可能是2,4、将递归算法转换成对应的非递归算法时,除了单向递归和尾递归的情况外,通常需要使用()保存中间结果 A 链表 B 栈 C队列 D 顺序表,5、设求解某问题的递归算法如下void F(int n)if(n=1)Move(1);elseF(n-1);Move(n);F(n-1);求解算法的计算时间,仅考虑算法move所作的计算,且move为常数级算法。则算法F的计算时间T(n)的递推关系为()A T(n)=T(n-1)+1 B T(n)=2T(n-1)C T(n)=2T(n-1)+1 D T(n)=2T(n+1)+1,6、一个队列的进队顺序是1,
13、2,3,4,则该队可能的输出序列是()A 1,2,3,4 B 1,3,2,4 C 1,4,2,3 D 4,3,2,1,7、牺牲一个单元区分队空、队满条件的循环队列的队满条件是()A(q.rear+1)%maxSize=(q.front+1)%maxSize B(q.front+1)%maxSize=q.rear C(q.rear+1)%maxSize=q.front D q.frong=q.rear,8、设循环队列存储数组的下标是0maxSize-1,其队尾指针和队头指针分别为rear和front,则队列中的元素个数为()A q.rear-q.front B q.rear-q.front+1
14、C(q.rear-q.front)%maxSize+1 D q.rear-q.front+maxSize)%maxSize,9、设栈S的队列Q的初始状态为空,元素a,b,c,d,e,f,g依次进栈栈S。如果每个元素出栈后立即进入队列Q,且7个元素出队的顺序为b,d,e,f,e,a,g,则栈S的容量至少是()A 1 B 2 C 3 D 4,第四章:数组和广义表,1要点:确定数组元素的三要素:行号、列号、元素值 数组元素的存放地址计算2、顺序表:顺序表的定义、搜索、插入与删除要点:顺序表搜索算法、平均比较次数的计算 插入与删除算法、平均移动次数的计算3、字符串:字符串的定义及其操作的实现要点:串重
15、载操作的定义与实现4.广义表:广义表定义、长度、深度、表头、表尾,1、设有一个10阶的对称矩阵A,采用下三角阵压缩存储方式,以行序为主存储,a11为第1个元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。A.13 B.33 C.18 D.402.将一个n*n的对称矩阵A的下三角部分(包括对角线)以行序存储到一维数组T中,A00存放于T0中,则对任一上三角元素Aij对应Tk的下标k是()。A.i(i+1)/2+j B.j(j+1)/2+i C.i(j-i)/2+1 D.j(i-1)/2+13若广义表L=(a,(b,c,d),则GetHead(L)=,GetTail(L)=,第5
16、章 树,1、树:树的定义、树的基本运算 要点:树的分层定义是递归的 树中结点个数与高度的关系2、二叉树:二叉树定义、二叉树的基本运算要点:二叉树性质、二叉树中结点个数与高度的关系、不同种类的二叉树棵数、完全二叉树的顺序存储、完全二叉树的双亲、子女和兄弟的位置,二叉树的前序中序后序遍历的递归算法和使用栈的非递归算法二叉树的层次遍历算法 中序线索化二叉树、前驱与后继的查找方法、建立中序线索化二叉树的算法3、霍夫曼树:霍夫曼树的构造方法、霍夫曼编码、带权路径长度的计算4、树与森林要点:树的广义表表示、树的双亲表示、树的左子女-右兄弟表示 树、森林与二叉树的对应关系 树的先根后根层次遍历算法,1、用顺
17、序存储的方法,将有n个结点的完全二叉树中所有结点按层逐个顺序存放在一维数组Rn中,若结点Ri有左子女,则其左子女是();若结点Ri有右子女,则其右子女是()。A R2i-1 B R2i C R2i+1D R2i+2,C,D,2、用顺序存储的方法,将有n个结点的完全二叉树中所有结点按层逐个顺序存放在一维数组Rn中,若结点Ri有双亲(即父结点),则其双亲是();该树中编号最大的非叶结点是()。A R(i-1)/2 B Ri/2 C Rn/2-1D Rn/2,A,C,3、一个深度为k且只有k个结点的二叉树按照完全二叉树顺序存储的方式存放于一个一维数组Rn中,那么n最大为()。A 2k B 2k+1
18、C 2k-1D 2k,C,4、在一棵二叉树的二叉链表中,空指针数等于非空指针数加()。A 2 B 1 C 0D-1,A,5、二叉树的叶结点在前序、中序和后序遍历过程中的相对顺序()。A 发生改变 B 不发生改变 C 无法确定D以上均不正确,B,6、给定二叉树如图所示。设V代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。若遍历后的结点序列为3175624,则其遍历方式为()A LRV B VRL CRLVD RVL,C,7、设n/m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是()。A n在m的右方 B n是m的祖先 C n在m左方Dn是m的子孙,C,1,2,3,4,5,6
19、,7,8、在二叉树中有两个结点m和n,如果m是n的祖先,使用()可以找到从m到n的路经。A 前序遍历 B 中序遍历 C 后序遍历D 层次序遍历,C,9、设一棵二叉树的前序序列为abdec,中序遍历为dbeac,则该二叉树的后序遍历序列为()。A abdec B debac C debcaD abedc,C,10、设结点x和y是二叉树中任意的两个结点。在该二叉树的前序序列中x在y之前,在其后序序列中x在y之后,则x和y的关系式()。A x是y的左兄弟 B x是y的右兄弟 C x是y的祖先D x是y的子孙,C,11、线索二叉树是一种()结构。A 逻辑 B 逻辑和存储 C 物理 D 线性,C,12、
20、n个结点的线索二叉树中,线索的数目是()。A n-1 B n+1 C 2nD 2n-1,B,13、在线索二叉树中,指针t所指结点的左子树为空的充要条件是()。A t-leftChild=NULL B t-ltag=1 C t-ltag=1&t-leftChild=NULL D 以上都不对,C,11、线索二叉树是一种()结构。A 逻辑 B 逻辑和存储 C 物理 D 线性,C,12、n个结点的线索二叉树中,线索的数目是()。A n-1 B n+1 C 2nD 2n-1,B,13、在线索二叉树中,指针t所指结点的左子树为空的充要条件是()。A t-leftChild=NULL B t-ltag=1
21、C t-ltag=1&t-leftChild=NULL D 以上都不对,C,14、将下图中的二叉树按中序线索化,结点e的右指针和结点g的左指针分别指向()A a,d B b,c Cd,a D c,a,D,15、在一非空二叉树的中序序列中,根结点的右边()。A 只有右子树上的所有结点 B 只有右子树的部分结点 C只有左子树上的所有结点 D只有左子树上的部分结点,A,a,b,c,d,e,g,f,16、设一棵具有n个结点,则它所有结点的度数之和是()。A 2n B 2n-1 C n+1 D n-1,D,17、设一棵树中只有度0和度为3的结点,则该树的第i层(i1)的结点个数最多为()。A 3i-1-
22、1 B 3i-1 C 3i-1 D 3i,C,18、设森林F对应的二叉树为B,它有m个结点。B的根为p,p的右子树中结点个数为n,则森林F中第一棵树的结点个数是()。A m-n B m-n-1 C n+1 D 无法确定,A,19、如果T2是由有序树T转换成的二叉树,那么T中结点的先根遍历顺序对应T2中的结点的()遍历顺序。A 前序 B 中序 C 后序 D 层次序,A,20、设森林中有三棵树,第1,2,3棵树中的结点个数分别为m1,m2和m3。那么在由森林转化成的二叉树中根结点的右子树上有()个结点。A m1+m2 B m2+m3 C m3+m1 D m1+m2+m3,B,21、将森林转化为对应
23、的二叉树,若在二叉树中,结点u是结点v的双亲结点的双亲结点,则在原来的森林中,u和v可能具有的关系是()。父子关系 兄弟关系 u的双亲结点与v的双亲结点是兄弟关系 A 只有 B 和 C 和 D 全部都有,B,22、设一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D),则该树的度为(),树的深度为(),叶节点个数为()。A 3 B 4 C 5 D 6,A,21、设F是一个森林,B是由F转换得到的二叉树,F中有n个非叶结点,则B中右指针域为空的结点有()个。A n-1 B n C n+1 D n+2,C,B,D,六七八章复习,第六章,有关散列的知识:散列方法的实质散列函数的构造方法
24、出现冲突的解决方法,1、散列法存储的基本思想是根据()来决定元素的存储地址的。A 元素的序号B 元素个数C 关键码值D 非码属性2、设一个散列表中有n个元素,用散列法进行搜索的平均搜索长度是()A O(1)B O(n)C O(log2n)D O(n2)3、使用散列函数将元素的关键码值映射为散列地址时,常会发生冲突。此时的冲突是指()。A 两个元素具有相同的序号 B 两个元素的关键码值不同,而非关键码值相同C 不同关键码值对应到相同的存储地址D 装载因子过大,数据元素过多,C,A,C,4、计算出的地址分布最均匀的散列函数是()A 数字分析法B 除留余数法C 平方取中法D 折叠法5、除留余数法的基
25、本思路是:设散列表的地址空间为0m-1,元素的关键码值为k,用p去除k,将余数作为元素的散列地址,即h(k)=k%p,为了减少发生冲突的可能性,一般取p为()A m B 小于或等于m的最大素数 C 大于m的最小素数 D 小于或等于m的最大合数6、已知一个线性序列38,25,74,63,52,48,假定采用散列函数h(key)=key%7计算散列地址,并散列存储在散列表A10中,若采用线性探查法解决冲突,则在该散列表上进行等概率成功搜索的评价搜索长度为()。A 1.5 B 1.67 C 1.83 D 2.24,B,B,C,7、假设有k个关键码值互为同义词,若用线性探查法把这k个关键码值存入散列表
26、,至少要进行()次探查。A k-1B kC k+1D k(k+1)/25、设散列表长m=14,散列函数H(key)=key%11,。表中已经有4个节点,地址分别为addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7,其余地址为空。如用二次探查法解决冲突,关键码值为49的散列地址为()A 8 B 3 C 5 D 9,D,D,6、设散列表为HT0.12,即表的大小为m=13。现采用双散列法解决冲突。散列函数和再散列函数分别为:H0(key)=key%13 Hi=(Hi-1+Rev(key+1)%11+1)%13其中函数Rev(x)表示颠倒10进行x的各位,如Rev
27、(37)=73,Rev(7)=7。若插入的关键码值序列为2,8,31,20,70,59,25,28。(1)试画出插入这8个关键码值后的散列表(2)计算搜索成功的评价搜索长度ASLsucc,2023/1/10,讲授目录,7.1 静态搜索结构7.2 二叉搜索树7.3 AVL树7.4 伸展树7.5 红黑树,1、在顺序存储的线性表R30上进行顺序搜索的平均搜索长度为()。A 15B 15.5C 16D 202、在对长度为n的顺序存储的有序表进行折半搜索,对应的折半搜索判定树的高度为()A n B log2nC log2(n+1)D log2(n+1)3、已知有序顺序表(13,18,24,35,47,5
28、0,62,83,90,115,134),当用顺序搜索法搜索值为83的元素时,搜索成功的数据比较次数为()。A 5 B 6C 7 D 84、利用逐个数据插入的方法建立序列35,45,25,55,50,10,15,30,40,20对应的二叉搜索树后,搜索元素20需要进行()次元素之间的比较。A 5 B 4C 7 D 10,B,D,D,A,5、如图所示的AVL树中插入关键码48,得到一棵新的AVL树,在这C新的AVL树中,关键码37所在节点的左右子女节点中保存的关键码分别是()。A 13,48B 24,48C 24,53D 24,906、将关键码DEC,FEB,NOV,OCT,JUL,SEP,AUG
29、,APR,MAR,MAY,JUN,JAN依次插入一棵初始为空的AVL树中,画出每插入一个关键码值后的AVL树,并标明平衡旋转的类型。并给出等概率时搜索成功的平均搜索长度和搜索不成功时的平均搜索长度。,C,24,13,53,37,90,48,讲授内容,8.1 图的基本概念8.2 图的存储结构8.3 图的遍历8.4 最小生成树8.5 最短路径8.6 用顶点表示活动的网络(AOV网络)8.7 用边表示活动的网络(AOE网络),教学目标:了解图的定义及其存储结构。掌握图的深度优先遍历算法和广度优先遍历算法。掌握求最小生成树的普里姆算法和克鲁斯卡尔算法,并能运用这些算法解决综合问题。理解图的最短路径算法
30、。,8.1.1 与图有关的若干概念8.1.2 图的抽象数据类型,1、具有6个顶点的无向图至少应有()条边才能确保是一个连通图。A 5B 6C 7D 82、设G是一个非连通的无向图,有15条边,则该图至少有()个顶点 A 5B 6C 7D 83、对于一个具有n个顶点和e条边的无向图,若采用邻接矩阵表示,则该矩阵的大小是(),矩阵中非零元的个数为()。A n B(n-1)2 C n-1 D n2 E e F 2eG e2Hn2,A,C,D,F,4、假设有一个有向图具有n个顶点和e条边,若该有向图采用邻接矩阵存储,则删除与顶点i相关联的所有边的时间复杂度是(),若该有向图采用邻接表存储,则删除与该顶
31、点i相关联的所有边的时间复杂度是()A O(n)B O(e)C O(n+e)D O(n2)5、对如图所有的无向图,从顶点a开始进行深度优先搜索,可得到顶点访问序列(),从顶点a开始进行广度优先搜索,可得到顶点访问序列()。A abdecgfB abdegfcC abdefcgD abcdegf E abcdefgF abdcefgGabcdegfHbeadgcf,A,B,E,B,6、任何一个连通图的最小生成树()A 只有一棵 B 有一棵或者多棵 C 一定有多棵D 可能不存在7、一个具有n个顶点和e条边的连通图的生成树具有()条边 A nB eC n-1D n+18、如果具有n个顶点的图是一个环
32、,则它有()棵生成树。A n B 2nC n-1 D n+19、已知一个带权连通图如图所示,在该图的最小生成树中各条边上权值之和为(),在该图的最小生成树中,从顶点1到6的路径为()。A 31 B 38C 36D 43 E 136F 146G 1546H 1436,B,C,B,C,G,10、在用Dijkstra算法求解带权有向图的最短路径问题时,要求图中每条边所带权值必须是()。对于如图所示的带权有向图,从顶点1到顶点5的最短路径为()A 非零 B 非整 C 非负D 非正 E 145F 1235G 1435H 12435,C,H,11、已知一个图如图所示,依据Dijkstra算法求从顶点1到其
33、余各个顶点的最短路径的顺序应是()A 25463 B 25436 C 23546D 54632,B,第九章 排序,1、基本概念:关键码、初始关键码排列、关键码比较次数、数据移动次数、稳定性、附加存储、内部排序、外部排序2、插入排序要点:当待排序的关键码序列已经基本有序时,用直接插入排序最快3、选择排序要点:用直接选择排序在一个待排序区间中选出最小的数据时,与区间第一个数据对调,而不是顺次后移。这导致方法不稳定。在堆排序中将待排序的数据组织成完全二叉树的顺序存储。4、交换排序要点:快速排序是一个递归的排序方法 当待排序关键码序列已经基本有序时,快速排序显著变慢。5、二路归并排序要点:归并排序可以
34、递归执行归并排序需要较多的附加存储。归并排序对待排序关键码的初始排列不敏感,排序速度较稳定,1给出一组关键字T=(30,8,16,12,2,28),写出用希尔排序从小到大排序时第一趟(gap=3)结束时的序列 12,2,16,30,8,28。2对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需要比较_3_次。3.已知一个数据表为36,25,25*,62,40,53,请写出在进行快速排序的过程中每次划分后数据表的变化。(0)36 25 25*62 40 53(1)25*25 36 62 40 53(2)25*25
35、 36 53 40 62(3)25*25 36 40 53 62,(1)每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做_排序;每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做_排序。(2)每次直接或通过基准元素间接比较两个元素,若出现逆序排列时就交换它们的位置,此种排序方法叫做_排序;(3)在直接选择排序中,记录比较次数的时间复杂度为_ O(n2)_,记录移动次数的时间复杂度为_O(n)_。,(4)在堆排序的过程中,对n个记录建立初始堆需要进行_次调整运算,由初始堆到堆排序结束,需要对树根结点进行_次调整运算。(5)在堆排序的过程中,
36、对任一分支结点进行调整运算的时间复杂度为_,整个堆排序过程的时间复杂度为_。(6)假定一组记录的排序码为(46,79,56,38,40,84),则利用堆排序方法建立的初始堆为_。,(4)在堆排序的过程中,对n个记录建立初始堆需要进行_n/2 _次调整运算,由初始堆到堆排序结束,需要对树根结点进行_n-1 _次调整运算。(5)在堆排序的过程中,对任一分支结点进行调整运算的时间复杂度为_O(log2n)_,整个堆排序过程的时间复杂度为_O(nlog2n)_。(6)假定一组记录的排序码为(46,79,56,38,40,84),则利用堆排序方法建立的初始堆为_(84,79,56,38,40,46)_。
37、,(7)快速排序在平均情况下的时间复杂度为_,在最坏情况下的时间复杂度为_。(8)快速排序在平均情况下的空间复杂度为_,在最坏情况下的空间复杂度为_。(9)在快速排序方法中,进行每次划分时,是从当前待排序区间的_向_依次查找出处于逆序的元素并交换之,最后将基准元素交换到一个确定位置,从而以该位置把当前区间划分为前后两个子区间。(10)假定一组记录的排序码为(46,79,56,38,40,80),对其进行快速排序的一次划分的结果为_。,(7)快速排序在平均情况下的时间复杂度为_,在最坏情况下的时间复杂度为_。(8)快速排序在平均情况下的空间复杂度为_,在最坏情况下的空间复杂度为_。(9)在快速排
38、序方法中,进行每次划分时,是从当前待排序区间的两端(低端)向中间(高端)依次查找出处于逆序的元素并交换之,最后将基准元素交换到一个确定位置,从而以该位置把当前区间划分为前后两个子区间。(10)假定一组记录的排序码为(46,79,56,38,40,80),对其进行快速排序的一次划分的结果为_40 384656 79 80或 40 384679 56 80 _。,1.已知序列17,25,55,43,3,32,78,67,91,请给出采用冒泡排序法对该序列作递增排序时每一趟的结果。2.已知序列491,77,572,16,996,101,863,258,689,325,请给出快速排序时每一趟的结果。3
39、.已知序列86,94,138,62,41,54,18,32,请给出采用插入排序法对该序列作递增排序时,每一趟的结果。4.已知序列27,35,11,9,18,30,3,23,35,20,请给出采用归并排序法对该序列作递增排序时的每一趟的结果。,这就是为什么我们彼此喜欢却不能在一起的原因。在两人除去性爱更为广泛的圈子里,你找不到我,我也找不到你,夜晚短暂的爱只适合埋藏在不知哪一天你会出现在我眼前的等待里。我告诉自己,我应该是一个人,一个完整却如筛漏的女人,那零碎的幸福能在暗夜中拯救我。所以我不再去思索,这究竟是否是爱情,行走在黑暗中的我,已看不清。常有人问我,我们究竟该选择爱自己多点还是自己爱的多
40、点的人?才能在这寂寞的世界里寻到一个能牵起自己一生的人,让自己感受到那最初的温情。如此,我便常常在某个时刻思索这深邃的问题。我想,这样的我们其实所求不多。在某个时间点,心要濒临孤独爆发的时刻,能在电话薄里毫不犹豫地按下你的电话,听到你温柔的声音。在没有你的一端,我隐忍的情绪哽碎着,但你依旧能感受到我那点不同,急切地去追问,甚至忧心地寻来不让我孤单一人的人。我想,这或许就是每个人希望的淡淡幸福。我是赞同婚姻和爱情属于两种状态的人。但我还是会想,爱情和婚姻真的有很多不同吗?以至于让人渴望又害怕。我猜我应该是一个没有完整经历过爱情的人,若是那段与他的十天恋爱算情,那我当为我干涸的生命里飘来的绿洲感到
41、开心。那是半年前与一个学长的恋爱,我很是狼狈加厚脸皮,默默的不用言语纠缠了他一个学期。最后一次转身而来的哭泣中生出他的声音,他耷着眉说你恨我吧!你这样我更难受。我猛地摇头晃脑一番争斗,哀伤的离去不敢看他一眼。但我想他应该是恨我的,恨我的纠缠,恨我的任性。那时我太过无知,不知道无论是在爱情的国度里,还是友情,他们和亲情都有着本质的不同,那就是在前两者,你始终都是一个人,应该是一个完整的人,而不是一个时刻任性的人。做好你自己,不成为别人的麻烦就是我们最应该在踏入社会前需明白的,因为没有人对你的好会是理所当然。每个人都有自己的疲倦期,每个人都有自己的独立空间,一旦那层防护膜被你的无知和幼稚捅破,你必
42、得经一番疼痛将自己的初心狠狠打破再重新铸成一个后,才会渐渐懂得那所谓的坚强从何而来。所以我没有恨他,但我也希望他不会恨我,因为没有了一切,空白才是最好的开始,当然,前提是你们还能开始。我自是已经回不去了,无论是这段美丽短暂的爱情,还是那段令我遗憾的友情。我在两场重要的失去中明白了人生浅短的道理做好你自己。我曾想,为何?为何我们会分手,为何在这同时,我会失去这一生中一个最好的朋友。前年的学习生涯中,我被人识得有自残的倾向。认真负责的辅导员将我千里迢迢的父亲召了过来,带着我前去精神科诊断。我似乎患了轻度的抑郁症,中等的依赖型人格障碍,我知道,我现在似乎在属于自己的角落里,慢慢走向自闭。难怪,他们对
43、我的说辞都是害怕。谁都会害怕,深夜里一个比鬼还可怕的人。我看过毕淑敏的女士的虾红色情书后,暗恼着自己为何不曾早点碰上这篇文章。可是后来一想,若是在发生之前碰上了,会有这样深刻的印象吗?应该是深埋的遗忘。因为那还不在我的人生里。半夏是个美丽的季节,生命最旺盛的时期。我在春天患上忧伤后,半夏遇上了我,让我看到这篇文章,它用文字温暖地揭开我裹上的迦,我是匆忙地裹地,在伤口上的烂肉还未撕去的时候,泛黄的药水会将它洗去,清澈的水珠会将它带走,即使只剩一块烂肉,我也不忍让它逝去,让它离开我的生命,在有他们的爱情和友情里,我曾感受到自己鲜活的生命,蓬勃的心脏。现在,我得亲手撕去这层痂,再挑去一丝丝的烂肉。我
44、忍着没去问他们离去的缘由,因为我知道原因在我,既不是他人所犯下的罪,我何必再让生命中对我如此重要的人为我伤心流泪,即使那只是想快速离去的泪,我也不舍,在我仅剩的记忆里,他们占了太多太多,让我忽略了其他人的存在。我的爱为什么让他们感到了害怕?我只是像其他人一样用自己的最无私的爱,爱着他们。那是哪里出了错?我只是在自己情绪出轨的时候,嘶声吼叫,狰狞的面目让人无法看穿这一刻的内心。我只是在大家都不注意我的时候,用尖刺的东西扎破了自己的手臂,刻画着自己最爱的字眼,但他们说,那些字,令他们很害怕。第一次,这种方式的确引起了他们强烈的关注,第二次,他们急切地过来慰问我,第三次,他们似乎神情有点紧张,眉色有点疲惫,第四次第五次人,或者高级动物,是会形成条件反射的。当一个人知道用自残的方式,可以胁迫他人按照自己的意志行事的时候,他会受到鼓励。难怪,那篇情书是虾红色的,难怪,我是令他们害怕的。我拿起在火上烤过的针,刺穿烂肉所留下的最后一丝魂。,