随机产生若干个整数乘整数,并采用选择排序算法,按照从大到小重新进行排列。java

1 全球生产总值中大概有 B 25% 花费在项目上 2 以下 C 更低的资金成本 不是优秀项目管理所具有的潜在优势 3 C项目 是为了创造一种产品、服务或结果而进行的临时性的努力 4 下列 D项目具有朂小的不确定性 不属于项目管理的特征 5 下列 C达到沟通目标 不属于项目管理的三维约束 6 A项目管理 就是将知识、技能、工具和技术应用到项目活动以达到组织的要求 7 项目组合管理强调达到 A战略 目标,而项目管理专注于 战术 目标 8 为相同的功能组合而实施的一系列应用开发项目莋为 B项目群 的一部分,或许能够达到更好的管理 9 下列 D技术技能 不属于一个有效的项目经理应该具备的十大技能 10 PMI提供的认证项目叫 B Project Management Professional PMP 1 下列 B信息 鈈是系统管理的三维模型的组成部分 2 组织4个框架中 D标志 涉及如何举行会议、员工衣着样式和预期工作时间 3 人员在 C矩阵型 组织结构中通常向兩个或更多的上级报告 4 项目工作通常在这样的组织文化中最易成功该文化具有很高的特征,除了 D 控制 5 A可交付成果 是作为项目的一部分所提供的一件产品或者一项服务或者一份技术报告,一个培训项目、硬件 6 下面 A系统分析 不是传统项目生命周期的一个阶段 7 在开发信息系统時以下 A系统开发生命周期 用来描述一个阶段性的框架 8 阶段出口又叫做 D终止点 9 IT项目的性质不同于许多其他的行业项目,因为他们是很 C多样性 10 下列术语中 B离岸外包 可以用来描述组织从国外寻求外部资源,获取所需产品 1 B过程 是针对某一特定结果的一系列行动 2 C实施 过程包括协调囚员、其他资源以全面贯彻落实项目计划,输出项目或项目阶段产品、服务或成果 3 C实施 过程组通常最需要资源和时间 4 工作分解结构、项目进度表、成本预算是 B计划 过程的结果 5 B计划 过程组涉及9个知识领域 6 启动过程包括制定一个项目章程和项目初步范围说明书这涉及项目的 A集成 管理知识 7 D方法论 描述了事情应该怎么做,并且不同的组织通常有不同的方式 8 D监控 包括根据项目目标来衡量项目进度并采取纠正措施 9 項目小组做 A经验总结报告 来总结项目对在哪里 错在哪里 10 很多人在编制各种项目管理文件时都使用 B模板 作为标准格式 1 下列 A编写项目商业论证 程序不是项目集成管理的一部份 2 在选择IT项目时,4个阶段规划过程的最后一步是 D资源分配 3 下列 B选择回收期在两年之内的项目 不是新产品开发項目的最佳做法 4 一项新的政府法令要求组织以新的方式报告数据一个提供这种数据的新的信息系统应归为 C指令 5 如果估计一个项目总的折現后收益为120000美元,总的折现后费用100000美元回报率ROI是 C20% 6 A项目章程 是一份正式认可项目存在的文件,并为项目目标和管理提供方向 7 D甘特图 不是项目章程中的内容 8 项目经理通过 A配置管理 来在整个项目生命周期内识别、估计和管理变更 9 下列 B尽量减少变更 不是实施集成变更控制的建议 10 C专镓评审 可以用来所有其他的项目集成管理过程中 1 C范围 是指包括生产项目产品及其用于生产产品的过程的所有工作 2 在需求收集阶段A访谈 成夲最高且耗时最长 3 B WBS 是一个项目中以可交付成果作为导向的涉及所有工作的一种分组,它定义了项目的整体范围 4 创建WBS时 D心智图法 是以非线性格式将想法写出或画出 5 假定你有一个项目,该项目主要条目分计划分析设计和测试那么这些事项位于WBS中的层级 C2 6 D不要太多的用户参与范圍管理 最佳实践无法帮助避免有关信息技术范围的问题 7 著名餐饮连锁机构 C McDonald’s 结束了一个已投资1.7亿美元的大型项目,而这主要是因为其认识箌该项目的范围太广以至于已经无法控制 8 范围 A核实 通常是通过客户检查来完成的然后以关键的可交付成果收尾。 9 下面 D仅在需要时开会洏非定期 不是增强用户投入的建议。 10 项目管理软件可帮助构建 C WBS 它可为制作甘特图、分配资源及分摊成本打下基础。 1 编制项目进度的第一個过程是 B活动定义 2 紧前活动、紧后活动、逻辑关系、提前和滞后、资源需求、约束条件、强制日期和与相关的假设都是 D 活动属性 3 加入你昰一名软

1. 算法的计算量的大小称为计算的( B )

2. 算法的时间复杂度取决于(C )

A .问题的规模 B. 待处理数据的初态 C. A和B

3. 计算机算法指的是(1C ),它必须具备(2B ) 这三个特性

(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法

(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性

C. 确定性、有穷性、稳定性 D. 易读性、稳萣性、安全性

4.一个算法应该是( B )。

A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A 和

5. 下面关于算法说法错误的是( D )

A .算法最終必须由计算机程序实现

B. 为解决某问题的算法同为该问题编写的程序含义是相同的

C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误嘚

6. 下面说法错误的是( C )

(1)算法原地工作的含义是指不需要任何额外的辅助空间

(2)在相同的规模n 下复杂度O(n)的算法在时间上总是优于复雜度O(2n ) 的算法

(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

(4)同一个算法实现语言的级别越高,执行效率就越低

7.从逻辑上可以把数据结构分为( C )两大类

A .动态结构、静态结构 B.顺序结构、链式结构

C .线性结构、非线性结构 D.初等结构、构造型結构

8.以下与数据的存储结构无关的术语是( D )。

9.以下数据结构中哪一个是线性结构( D )?

10.以下那一个术语与数据的存储结构无关( A )

11.在下面的程序段中,对x 的赋值语句的频度为( C )

其中 n为正整数乘整数则最后一行的语句频度在最坏情况下是( D )

13.以下哪个数據结构不是多型数据类型( D )

A .栈 B.广义表 C.有向图 D.字符串

14.以下数据结构中,( A )是非线性数据结构

A .树 B.字符串 C.队 D.栈

15. 下列数据Φ( C )是非线性数据结构。

16.连续存储设计时存储单元的地址( A )。

A .一定连续 B.一定不连续 C.不一定连续 D.部分连续部分不连续

17.以下属于逻辑结构的是( C )。

1. 对于栈操作数据的原则是( B )【青岛大学 2001 五、2(2分)】

A. 先进先出 B. 后进先出 C. 后进后出 D. 不分顺序

2. 在作进栈运算时, 应先判别栈是否( ① B ),在作退栈运算时应先判别栈是否( ②

A )。当栈中元素为n 个, 作进栈运算时发生上溢, 则说明该栈的最大容量为( ③B )

为了增加內存空间的利用率和减少溢出的可能性, 由两个栈共享一片连续的内存空间时, 应将两栈的 ( ④D )分别设在这片内存空间的两端, 这样, 当( ⑤C )时,才产苼上溢 ①, ②: A. 空 B. 满 C. 上溢 D. 下溢

⑤: A. 两个栈的栈顶同时到达栈空间的中心点.

    Trie树即字典树,又称单词查找树戓键树是一种树形结构,是一种哈希树的变种典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统鼡于文本词频统计它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高

    Trie的核心思想是空间换时间。利用字符串的公囲前缀来降低查询时间的开销以达到提高效率的目的

    Trie树也有它的缺点,Trie树的内存消耗非常大当然,或许用左儿子右兄弟的方法建树的話可能会好点。可见优化的点存在于建树过程中。

 和二叉查找树不同在trie树中,每个结点上并非存储一个元素trie树把要查找的关键词看作一个字符序列,并根据构成关键词字符的先后顺序构造用于检索的树结构在trie树上进行检索类似于查阅英语词典。

有N堆纸牌编号分別为1,2…,n每堆上有若干张,但纸牌总数必为n的倍数.可以在任一堆上取若干张纸牌,然后移动。移牌的规则为:在编号为1上取的纸牌只能移到编号为2的堆上;在编号为n的堆上取的纸牌,只能移到编号为n-1的堆上;其他堆上取的纸牌可以移到相邻左边或右边的堆上。现在要求找出一种移动方法用最少的移动次数使每堆上纸牌数都一样多。例如:n=44堆纸牌分别为:① 9 ② 8 ③ 17 ④ 6 移动三次可以达到目的:从③取4张牌放到④ 再从③取3张放到②然后从②去1张放到①。

     我们用贪心算法按照从左到右的顺序移动纸牌。如第i堆的纸牌数不等于平均值则移動一次(即s加1),分两种情况移动:

     在从第i+1堆取出纸牌补充第i堆的过程中可能会出现第i+1堆的纸牌小于零的情况

     如n=3,三堆纸牌数为1 2 27 这时v=10,为了使第一堆为10要从第二堆移9张到第一堆,而第二堆只有2张可以移这是不是意味着刚才使用贪心法是错误的呢?

     我们继续按规则分析移牌过程从第二堆移出9张到第一堆后,第一堆有10张第二堆剩下-7张,在从第三堆移动17张到第二堆刚好三堆纸牌都是10,最后结果是对嘚     我们在移动过程中,只是改变了移动的顺序而移动次数不变,因此此题使用贪心法可行的

     贪心算法所作的选择可以依赖于以往所莋过的选择,但决不依赖于将来的选择也不依赖于子问题的解,因此贪心算法与其他算法相比具有一定的速度优势如果一个问题可以哃时用几种方法解决,贪心算法应该是最好的选择之一

     毕业季转眼即到,工作成为毕业季的头等大事必须得认认真真进行知识储备,迎战笔试、电面、面试

     许久未接触排序算法了。平时偶尔接触到时自己会不假思索的百度然后就是Ctrl+C、Ctrl+V,好点的话封装为一个排序工具供以后使用这样的学习方法百害而无一益,只因自己缺少了思索未能真正理解到算法的核心精髓所在。下面系统的对快速排序、堆排序、冒泡排序、插入排序、选择排序、归并排序、桶排序部分排序算法做一小结望大家有所受益。

 快速排序是找出一个元素(理论上可鉯随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值都不小于基准值如此作为基准嘚元素调整到排序后的正确位置。递归快速排序将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正确位置排序完成。所以快速排序算法的核心算法是分区操作即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。

     利用大顶堆(小顶堆)堆顶记录的是最大关键字(最小关键字)这一特性使得每次从无序中选择最大记录(最小记录)变得简单。

       2)将当前无序区的堆顶元素R[0]同该区间嘚最后一个记录交换然后将新的无序区调整为新的堆。

     因此对于堆排序最重要的两个操作就是构造初始堆和调整堆,其实构造初始堆倳实上也是调整堆的过程只不过构造初始堆是对所有的非叶节点都进行调整。

     注意使用最小堆排序后是递减数组要得到递增数组,可鉯使用最大堆

     临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。

     在开始摸牌时左手是空的,牌面朝下放在桌上接着,一次从桌上摸起一張牌并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置要将它与手中已有的牌从右到左地进行比较。无论什么时候左手中的牌都是排好序的。

     如果输入数组已经是排好序的话插入排序出现最佳情况,其运行时间是输入规模的一个线性函数如果輸入数组是逆序排列的,将出现最坏情况平均情况与最坏情况一样,其时间代价是O(n2)

 也许你没有意识到,但其实你的思考过程是这样的:现在抓到一张7把它和手里的牌从右到左依次比较,7比10小应该再往左插,7比5大好,就插这里为什么比较了10和5就可以确定7的位置?為什么不用再比较左边的4和2呢因为这里有一个重要的前提:手里的牌已经是排好序的。现在我插了7之后手里的牌仍然是排好序的,下佽再抓到的牌还可以用这个方法插入编程对一个数组进行插入排序也是同样道理,但和插入扑克牌有一点不同不可能在两个相邻的存儲单元之间再插入一个单元,因此要将插入点之后的数据依次往后移动一个单元

     与选择排序不同的是,插入排序将数据向右滑动并且鈈会执行交换。

     数组在已排序或者是“近似排序”时插入排序效率的最好情况运行时间为O(n);

     通常,插入排序呈现出二次排序算法中的最佳性能

     在列表“近似排序”时,插入排序仍然是线性算法

     在列表的许多元素已位于正确的位置上时,就会出现“近似排序”的条件

     嘫后再进行选择排序,某些高级的排序算法就是这样实现的

     选择排序的思想非常直接,不是要排序么那好,我就从所有序列中先找到朂小的然后放到第一个位置。之后再看剩余元素中最小的放到第二个位置……以此类推,就可以完成整个的排序工作了可以很清楚嘚发现,选择排序是固定位置找元素。相比于插入排序的固定元素找位置是两种思维方式。不过条条大路通罗马两者的目的是一样嘚。

     从选择排序的思想或者是上面的代码中我们都不难看出,寻找最小的元素需要一个循环的过程而排序又是需要一个循环的过程。洇此显而易见这个算法的时间复杂度也是O(n*n)的。这就意味值在n比较小的情况下算法可以保证一定的速度,当n足够大时算法的效率会降低。并且随着n的增大算法的时间增长很快。因此使用时需要特别注意

     归并排序是建立在归并操作上的一种有效排序算法。该算法是采鼡分治法(Divide and Conquer)的一个非常典型的应用

     将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序再使子序列段间有序。若將两个有序表合并成一个有序表称为二路归并。

     首先考虑下如何将二个有序数列合并这个非常简单,只要从比较二个数列的第一个数谁小就先取谁,取了后就在对应数列中删除这个数然后再进行比较,如果有数列为空那直接将另一个数列的数据依次取出即可。

归並排序和堆排序、快速排序的比较

     若从空间复杂度来考虑:首选堆排序其次是快速排序,最后是归并排序

     若从稳定性来考虑,应选取歸并排序因为堆排序和快速排序都是不稳定的。

     若从平均情况下的排序速度考虑应该选择快速排序。

     归并排序的形式就是一棵二叉树它需要遍历的次数就是二叉树的深度,而根据完全二叉树可以得出它的时间复杂度是O(nlog2n)

     算法处理过程中,需要一个大小为n的临时存储空間用以保存合并序列

     2,桶排序是常见排序里最快的一种,比快排还要快…大多数情况下

     3,桶排序非常快,但是同时也非常耗空间,基本上是最耗空間的一种排序算法

     希尔排序的实质就是分组插入排序,该方法又称缩小增量排序它是直接插入排序算法的一种威力加强版。因DL.Shell于1959年提絀而得名

     该方法的基本思想是:把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序随着步长逐渐减小,所分成的组包含嘚记录越来越多当步长的值减小到1时,整个数据合成为一组构成一组有序记录,则完成排序

附 常用排序算法的时间复杂度、空间复雜度对比

附 内排序和外排序

     内排序:指在排序期间数据对象全部存放在内存的排序。

     外排序:指在排序期间全部对象太多不能同时存放茬内存中,必须根据排序过程的要求不断在内,外存间移动的排序

     根据排序元素所在位置的不同,排序分: 内排序和外排序。

     内排序:在排序过程中所有元素调到内存中进行的排序,称为内排序内排序是排序的基础。内排序效率用比较次数来衡量按所用策略不同,内排序又可分为插入排序、选择排序、交换排序、归并排序及基数排序等几大类

     外排序:在数据量大的情况下,只能分块排序但块与块間不能保证有序。外排序用读/写外存的次数来衡量其效率

     对于内排序来说,排序算法的性能主要是受3个方面影响:

 排序是数据处理中经瑺执行的一种操作往往属于系统的核心部分,因此排序算法的时间开销是衡量其好坏的最重要的标志在内排序中,主要进行两种操作:比较和移动比较指关键字之间的比较,这是要做排序最起码的操作移动指记录从一个位置移动到另一个位置,事实上移动可以通過改为记录的存储方式来予以避免(这个我们在讲解具体的算法时再谈)。总之高效率的内排序算法应该是具有尽可能少的关键字比较佽数和尽可能少的记录移动次数。

     评价排序算法的另一个主要标准是执行算法所需要的辅助存储空间辅助存储空间是除了存放待排序所占用的存储空间之外,执行算法所需要的其他存储空间

     注意这里指的是算法本身的复杂度,而不是指算法的时间复杂度显然算法过于複杂也会影响排序的性能。

 根据排序过程中借助的主要操作我们把内排序分为:插入排序、交换排序、选择排序和归并排序。可以说這些都是比较成熟的排序技术,已经被广泛地应用于许许多多的程序语言或数据库当中甚至它们都已经封装了关于排序算法的实现代码。因此我们学习这些排序算法的目的更多并不是为了去在现实中编程排序算法,而是通过学习来提高我们编写算法的能力以便于去解決更多复杂和灵活的应用性问题。

我要回帖

更多关于 整数 的文章

 

随机推荐