摘要:
类中的方法有两类: 绑定方法 非绑定方法 绑定方法 非绑定方法 一、绑定方法 1.对象的绑定方法 首先我们明确一个知识点,凡是类中的方法或函数,默认情况下都是绑定给对象使用的。下面,我们通过实例,来慢慢解析绑定方法的应用。 从上面的输出结果来看,talk()這个类中的方法,是绑定给对象使用的。下面, 阅读全文
摘要:
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 分析:从1到N先找出最小的质因数,如果等于本身,那么说明只有一个质因数,如果不是,那么将该质因数打印出来,并将N/该质因数作为新的N值进行运算。 设计步骤: 1、如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即 阅读全文
摘要:
题目:给定一个整数N ,那么N 的阶乘N !末尾有多少个0呢? 例如:N = 10,N! = 3628800,所以N!末尾就有2个零。 分析:如果直接先算出N!阶乘,很容易导致内存溢出。显然,直接算出来是不行的。所以,我们可以换一个角度来分析这个问题。我们知道 N! = 1*2*3*4*...... 阅读全文
摘要:
1.定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 以上定义虽然只说了一句话,但是包含了以下三点: 某个类只能有一个实例 它必须创建这个实例 它必须自行向整个系统提供这个实例 某个类只能有一个实例 它必须创建这个实例 它必须自行向整个系统提供这个实例 2.类图 3.单例模式类 阅读全文
摘要:
如果你需要将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,我们就应该使用‘建造者模式’,又称为生成器模式。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。如果我们使用了建造者模式,那么用户就只需要指 阅读全文
摘要:
本文主要论述了以下几方面: 1.总论 2.简单工厂模式 3.工厂方法模式 4.抽象工厂模式 1.总论 在工厂设计模式中,客户端可以请求一个对象,而无需知道這个对象来自哪里;也就是说,使用哪个类来生成这个对象。工厂背后的思想是简化对象的创建。与客户端自己基于类实例化直接创建对象相比,基于一个中心化函数 阅读全文
摘要:
算法思想:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 设计步骤: 假设有一组无序序列 R0, R1, ... , RN-1。 (1) 我们先将这个序列中下标为 0 的元素视为元素个数为 1 的有序序列。 (2) 然后,我们要依次把 R1, R2, .. 阅读全文
摘要:
设计思想 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。它不要比较关键字的大小。 假设:R {50, 123, 543, 187, 49, 30, 0, 2, 11, 100} 任何一个阿拉伯数,它的各个位数上的基数都是以0~9来表示的。所以我们不妨把0~9 阅读全文
摘要:
描述 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来 阅读全文
摘要:
堆的介绍 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, ... , Rn}当且仅当满足下列关系之一时,称之为堆: (1) Ri 阅读全文