设计思想 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。它不要比较关键字的大小。 假设:R {50, 123, 543, 187, 49, 30, 0, 2, 11, 100} 任何一个阿拉伯数,它的各个位数上的基数都是以0~9来表示的。所以我们不妨把0~9 ...
分类:
编程语言 时间:
2017-07-02 17:11:57
阅读次数:
203
1.空间复杂度 一个程序的空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需要的内存多少有个预先估计。一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为现实计算所需信息的辅助空间。程序执行时 ...
分类:
编程语言 时间:
2017-06-30 19:53:59
阅读次数:
201
一、 题目描写叙述 大家对回文串不陌生吧?一个字符串从前看和从后看假设一样的话。就是回文串。比方“上海自来水来自海上”就是一个回文串。如今我们的问题来了。把一个数字看成字符串,问它是不是一个回文数?时间复杂度和空间复杂度越低的算法,得分越高。 c++: bool isPalindromeNumber ...
分类:
移动开发 时间:
2017-06-29 17:29:47
阅读次数:
138
数据结构的定义: 把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器中(内存),以及在此基础上实现的某个功能(查找、删除某个元素,对所有元素排序)而执行的相应操作,这个相应的操作也叫做算法。 数据结构=个体+个体的关系 算法=对存储数据的操作 算法的定义: 解题的步骤和方法 衡量 ...
分类:
编程语言 时间:
2017-06-27 01:05:13
阅读次数:
170
1、已知长度为 n 的线性表 A 采用顺序存储结构。设计一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为 x 的元素数据元素。 以下两种方法都不满足要求: 如果删除一个值为 x 的元素都进行移动, 其时间复杂度为O(n^2),时间复杂度为O(1). 如果借助一个新的顺 ...
分类:
编程语言 时间:
2017-06-24 23:45:53
阅读次数:
376
④希尔排序 时间复杂度:n^1.25 ~ 1.6n^1.25。 优点:快,数据移动少。 缺点:不稳定,增量的选择无法确切知道,只能凭经验来取。 ⑤归并排序 时间复杂度:O(nlgn)。 优点:稳定,快。 缺点:需要O(n)的辅助空间,空间复杂度高。 ⑥快速排序 时间复杂度:O(nlgn)。 优点:极 ...
分类:
编程语言 时间:
2017-06-24 16:25:58
阅读次数:
181
算法的时间复杂度和空间复杂度合称为算法的复杂度。 1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执 ...
分类:
编程语言 时间:
2017-06-24 13:57:58
阅读次数:
171
数据之间的相互关系称为逻辑结构。通常分为四类基本结构: 集合 结构中的数据元素除了同属于一种类型外。别无其他关系。 线性结构 结构中的数据元素之间存在一对一的关系。 树型结构 结构中的数据元素之间存在一对多的关系。 图状结构或网状结构 结构中的数据元素之间存在多对多的关系。 数据结构在计算机中有两种 ...
分类:
编程语言 时间:
2017-06-23 15:50:38
阅读次数:
170
在前面介绍的几篇博客中总是提到CLH队列,在AQS中CLH队列是维护一组线程的严格依照FIFO的队列。他可以确保无饥饿,严格的先来先服务的公平性。下图是CLH队列节点的示意图:在CLH队列的节点QNode中包括有一个locked的字段,该字段表示该节点是否须要获取锁。为true表示须要获取,为fal ...
分类:
编程语言 时间:
2017-06-22 10:15:56
阅读次数:
230
输入一个整数数组,对其重新排序,将奇数放在数组前面,偶数放在后面。要求时间复杂度O(n), 空间复杂度O(1)。 解法一:一头一尾指针往中间扫描 ...
分类:
编程语言 时间:
2017-06-22 00:18:37
阅读次数:
231