NCRE Java Examination

来源:互联网 发布:大数据概念股票有哪些 编辑:程序博客网 时间:2024/06/06 20:42

NCRE Java Examination

Chapter 1 数据结构与算法

二叉树

满二叉树:是除了叶子结点外所有结点度数都为2的二叉树,当其有n个结点时,非叶子结点数为int(n/2)。

eg. 设一个棵满二叉树共有15个结点,则该满二叉树的叶子结点数为。

Leaf Nodes=int(n/2)=intn2

Leaf Nodes=int(n/2)=intn2=int(15/2)=7

Total=15Leaf Nodes=157=8

二叉树基本性质3: 对任意一棵二叉树,度为0的叶子节点总是比度为2的结点多一个。

eg.在一棵二叉树中,叶子结点共有30个,度为1的结点共有40个,则该二叉树中的总结点数共有多少个。

2=01=301=29

Total=30+29+40=99

已知深度求叶子结点。

设:深度为k。

Leaf Nodes=2k1

二叉树的前序遍历(DLR):在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且在遍历右子树时,上述规则同样适用,即“根-左-y”右。

二叉树的中序遍历(LDR):访问根节点再访问左子树和右之间。

后序遍历(LRD):访问左右子树之后再访问根结点。

对长度为n的有序链表进行对分查找,最坏的情况下需要的比较次数为log2n

二分法也称折半查找,用顺序存储的线性有序表适用二分查找。

冒泡、简单选择排序、直接插入排序在最坏的情况下比较次数都是0(n2),而堆排序的时间复杂度为0(nlog2n),这也是堆排序的最大优点。

简单选择排序的算法描述:前面的元素已经有序,扫描剩下的线性表,找到最小的元素,将它交换到剩余表的最前面,直到剩余表为空。

堆排序是一种选择排序的算法,从它建堆开始,1.将序列表表示为完全二叉树 2.从第n/2个结点开始(最后一个结点的父亲)。如果该结点的孩子小与该结点,则将两个结点交换,交换后,如果该结点的子结点破坏了堆的条件,则递归交换。确保该结点的最后值都小于它的左右孩子 3.n-1 4.重复2、3步骤,直到最小值到大定点结点,并且满足堆的性质。

冒泡排序在最坏的情况下比较次数为,n(n1)/2

希尔排序,n1.5

这里写图片描述

程序设计基础

面向对象基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好

这里写图片描述

0 0
原创粉丝点击