05 2017 档案
(转载)排序算法系列
摘要:排序算法系列 目录 概述 概念 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。 排序分为内部排序和外部排序。 若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。 反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此 阅读全文
posted @ 2017-05-20 15:33 王小东大将军 阅读(225) 评论(0) 推荐(0)
(转载)排序五 简单选择排序
摘要:排序五 简单选择排序 目录 要点 简单排序处理流程 算法分析 简单选择排序算法的性能 时间复杂度 空间复杂度 完整参考代码 JAVA版本 参考资料 相关阅读 要点 简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 阅读全文
posted @ 2017-05-20 15:23 王小东大将军 阅读(258) 评论(0) 推荐(0)
(转载)排序八 基数排序
摘要:排序八 基数排序 目录 要点 完整参考代码 算法分析 基数排序的性能 时间复杂度 空间复杂度 算法稳定性 相关阅读 要点 基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。 不妨通过一个具 阅读全文
posted @ 2017-05-20 15:20 王小东大将军 阅读(319) 评论(0) 推荐(0)
(转载)排序七 归并排序
摘要:排序七 归并排序 目录 要点 归并排序的基本思想 算法分析 归并排序算法的性能 时间复杂度 空间复杂度 算法稳定性 归并排序和堆排序、快速排序的比较 完整参考代码 Java版本 参考资料 相关阅读 要点 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Con 阅读全文
posted @ 2017-05-20 15:19 王小东大将军 阅读(268) 评论(0) 推荐(0)
(转载)排序六 堆排序
摘要:排序六 堆排序 目录 堆的概念 要点 算法分析 堆排序算法的总体情况 时间复杂度 算法稳定性 完整参考代码 JAVA版本 参考资料 相关阅读 堆的概念 在介绍堆排序之前,首先需要说明一下,堆是个什么玩意儿。 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为 阅读全文
posted @ 2017-05-20 15:18 王小东大将军 阅读(358) 评论(0) 推荐(0)
(转载)排序四 希尔排序
摘要:排序四 希尔排序 目录 要点 算法分析 希尔排序的算法性能 时间复杂度 算法稳定性 直接插入排序和希尔排序的比较 完整参考代码 JAVA版本 参考资料 相关阅读 要点 希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。 该方法因DL.Shell于195 阅读全文
posted @ 2017-05-20 15:15 王小东大将军 阅读(229) 评论(0) 推荐(0)
(转载)排序三 直接插入排序
摘要:排序三 直接插入排序 目录 要点 算法分析 直接插入排序的算法性能 时间复杂度 空间复杂度 算法稳定性 完整参考代码 JAVA版本 参考资料 相关阅读 要点 直接插入排序是一种最简单的插入排序。 插入排序:每一趟将一个待排序的记录,按照其关键字的大小插入到有序队列的合适位置里,知道全部插入完成。 在 阅读全文
posted @ 2017-05-20 15:09 王小东大将军 阅读(296) 评论(0) 推荐(0)
(转载)排序二 快速排序
摘要:排序二 快速排序 目录 要点 算法分析 快速排序算法的性能 时间复杂度 空间复杂度 算法稳定性 完整参考代码 JAVA版本 参考资料 相关阅读 要点 快速排序是一种交换排序。 快速排序由C. A. R. Hoare在1962年提出。 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割 阅读全文
posted @ 2017-05-20 15:08 王小东大将军 阅读(275) 评论(0) 推荐(0)
1.7图结构
摘要:数据元素存在3种关系: 1)先行后续,即一个数据元素有一个直接前驱和一个直接后继,这种组织结构叫线性结构; 2)层次关系,每一层上数据元素可能和下一层中的多个数据元素相关,但只和上一层中的一个数据元素相关,这类组织结构叫树结构; 3)数据元素间是”一对多“或者”多对一“的关系,即任意两个数据元素之间 阅读全文
posted @ 2017-05-15 18:03 王小东大将军 阅读(243) 评论(0) 推荐(0)
1.6树结构
摘要:树结构是以分支关系定义的一种层次结构。(应用数结构组织起来的数据应当具有层次关系) 树的定义 树:由n个结点组成的有穷集合。 在任意的一颗非空树中: 1) 有且仅有一个称为根的结点 2) 当n>1时,其余结点分为m个互不相交的有限集,T1,T2……Tm,其中每一个集合本身又是一颗树,并称为根的子树。 阅读全文
posted @ 2017-05-15 10:49 王小东大将军 阅读(332) 评论(0) 推荐(0)
1.5队列
摘要:队列是一种先进先出的线性表。要求所有数据从队列一端进入,从队列另一端离开。 在队列中,允许插入数据的一端叫做队尾rear;允许数据离开的一端叫做队头front; 定义一个队列: QNode为队列元素的类型,QueuePtr为指向QNode类型元素的指针类型,等价于QNode*。 创建一个队列: 1) 阅读全文
posted @ 2017-05-12 17:01 王小东大将军 阅读(218) 评论(0) 推荐(0)
1.4栈
摘要:栈:后进先出的线性表,要求在表尾进行数据的删除和插入操作、 1)栈的元素必须先进后出 2)栈的操作只能限定在这个顺序表的表尾进行。 对于栈,这个顺序表或者链表的表尾(进行删除和插入的地方)称为栈顶top,相应的表头称为栈底bottom、 定义一个顺序栈: 创建一个空栈 入栈 注意:top指向的空间始 阅读全文
posted @ 2017-05-12 15:58 王小东大将军 阅读(146) 评论(0) 推荐(0)
1.3链表
摘要:链表的物理存储结构是用一组地址任意的存储单元存储数据的。不像顺序表占据连续的一段内存空间,而是将存储单元分散在内存的任意地址上。 链表结构中,每个数据元素记录都存放到链表的一个节点(node)中,而每个节点之间由指针将其连接在一起,形成了”链“的结构、 链表每个节点中,都必须有一个专门用来存放指针( 阅读全文
posted @ 2017-05-12 15:18 王小东大将军 阅读(347) 评论(0) 推荐(0)
1.2顺序表
摘要:计算机内部存储一张线性表(线性结构的数表),最简单方便的方法就是用一组连续地址的内存单元来存储整张线性表。 顺序表的特征: 1)有一个唯一的表名来标识该顺序表; 2)内存单元连续存储,也就是说,一张顺序表要占据一块连续的内存空间; 3)数据顺序存放,元素之间有先后关系 注意:数组本身就是一张顺序表。 阅读全文
posted @ 2017-05-10 22:55 王小东大将军 阅读(343) 评论(0) 推荐(0)
1.1数据结构
摘要:数据结构是指计算机内部数据的组织形式和存储方法。 线性结构是最常用,也是最简单的一种数据结构。线性结构,由n个数据元素构成的有限序列。数组就是一种最简单的线性结构表示。 线性结构包括:顺序表、链表、栈、队列等基本形式、 顺序表和链表是从存储形式上(或者说物理结构上)区分的,而栈和队列是从逻辑功能区别 阅读全文
posted @ 2017-05-10 21:57 王小东大将军 阅读(160) 评论(0) 推荐(0)
6.6递归法寻找最小值
摘要:Q:编写一个程序,从一个整数序列中找到最小的元素,并用递归方法实现。 阅读全文
posted @ 2017-05-05 11:07 王小东大将军 阅读(586) 评论(0) 推荐(0)
6.5验证四方定理
摘要:四方定理:所有自然数最多只要4个数的平方和就可以表示,编写一个程序验证四方定理、 注意: sqrt(n)返回的值是浮点数类型,因此需要int的强制类型转换将其取整。 最后加一个“no”语句,只是为了保证程序的完整性或防止意外的出现。 阅读全文
posted @ 2017-05-05 10:48 王小东大将军 阅读(576) 评论(0) 推荐(0)
6.4验证角谷猜想
摘要:角谷猜想内容:任意个自然数,若为偶数则除以2,若为奇数则乘以3加1,得到一个新的自然数,按照这样的计算方法计算下去,若干次后得到的结果必然为1.写程序对角谷猜想正确性验证。 思路一: 思路二:设定一个阈值以规定循环的上限次数,如果循环在阈值范围内结束,则说明该数在给定范围内符合角谷猜想;如果超过了预 阅读全文
posted @ 2017-05-05 10:30 王小东大将军 阅读(670) 评论(0) 推荐(0)
6.3具有特殊性质的数
摘要:Q:有这样4位数,abcd=(ab+cd)^2,其中ab和cd是两个2位数,求这个4位数abcd、 分析:暴力! 一开始出现了大量的数据,以为是正确的。然后才发现程序中的if判断条件处,发生错误。多了个“;”,导致了大量数据!应该把“;”去掉。正确代码如下: 阅读全文
posted @ 2017-05-05 10:15 王小东大将军 阅读(215) 评论(0) 推荐(0)
6.2表示成两个数的平方和
摘要:Q:编写一个程序,找出正整数N=X^2+Y^2所有的正整数X、Y。 注意:100=6^2+8^2与100=8^2+6^2是重复的,只显示一个。 与6.1一个套路。 阅读全文
posted @ 2017-05-05 10:05 王小东大将军 阅读(382) 评论(0) 推荐(0)
6.1连续整数固定和问题
摘要:Q:编写一个程序,找出一个数的全部连续整数固定和。eg: 27=2+3+.....+7; 27=8+9+10;27=13+14; 注意:有些数可能不存在连续整数固定和,如4和6. 阅读全文
posted @ 2017-05-05 09:52 王小东大将军 阅读(351) 评论(0) 推荐(0)
5.23谁在说谎
摘要:Q:甲说:乙说谎; 乙说:丙说谎;丙说:甲乙两人都说谎。到底谁说谎?谁没有说谎? 阅读全文
posted @ 2017-05-04 14:42 王小东大将军 阅读(167) 评论(0) 推荐(0)
5.22递归实现数制转换
摘要:Q:将输入的二进制转换为十进制表达。 分析:算法中参数sum用来记录累加和。参数m随着递归的深入不断加1,并且递归结束m的值也不会发生变化。因为参数sum和m都要在递归中保持值得不变,因此采用指针传递方式。参数n的值随着递归的深入不断加1,但是每一层的递归n的取值都不同。在将二进制转换为十进制时,2 阅读全文
posted @ 2017-05-04 14:25 王小东大将军 阅读(439) 评论(0) 推荐(0)
5.21数字翻译器
摘要:Q:输入一个数,输出英文表达。 阅读全文
posted @ 2017-05-04 13:22 王小东大将军 阅读(176) 评论(0) 推荐(0)
5.20亲密数
摘要:Q:若整数A的全部因子(包括1,不包括本身)之和等于B,并且整数B的全部因子之和等于A,则称A与B是亲密数。求解3000以内的全部亲密数。 思路:先将1~3000以内所有数的全部因子之和算出来,存入到数组x[]中,这样x[i]中存放的是i的因子之和,寻找{1,2,……3000}范围中所有的亲密数的算 阅读全文
posted @ 2017-05-04 12:44 王小东大将军 阅读(215) 评论(0) 推荐(0)
5.19完全数
摘要:若某个数恰好等于它的因子(包括1,但不包括本身)之和,那么这个数就被称为完全数。例如6的因子为1,2,3,而6=1+2+3.因此6是一个完全数。求出1000以内完全数。 阅读全文
posted @ 2017-05-04 12:06 王小东大将军 阅读(171) 评论(0) 推荐(0)