
算法
记住我的名字啊
微信公众号:More-Coupon;应用宝搜索:一张券
展开
-
算法:查找
定义查找又称为检索或者是搜索,是指从一批记录中找出满足条件的某一个记录的过程。分类简单查找二叉树排序树索引查找哈希表简单查找顺序查找(以线性表为基础,静态查找) 从线性表的一端开始,依次将每个记录的关键字与给定值进行比较,若某个记录的关键字等于给定值,表示查找成功,返回记录序号;若所有记录查找完成,仍然未找到与关键字匹配的字段,则表示查找失败,返回一个失败值。关键代码段for (int原创 2016-07-27 16:20:11 · 579 阅读 · 0 评论 -
算法:排序
定义是将一组数据按照一定的规则排列起来,方便查询处理。分类1内部排序 2外部排序 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。1.1交换排序1.1.1冒泡排序 基本思想:对排序记录数据从后往前(逆序)进行多次扫描,当发现相邻两个数据的次序与排序要求的规则不符实,就将这两个记录原创 2016-07-26 17:55:54 · 498 阅读 · 0 评论 -
数据结构
定义算法处理对应的数据,这些被处理的数据,都必须按照一定的规则进行组织,当这些数据之间存在一种或多种特定关系的时候,我们就称这种关系为结构分类线性结构:数据与元素之间是一对一的结构,每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继;树性结构:数据结构中的元素存在一对多的关系,数据元素之间有着明显的层次关系,并且每个数据元素只与上一层中的一个元素(双亲节点)及下一层的多个元素(孩原创 2016-07-26 14:27:25 · 657 阅读 · 0 评论 -
算法:模拟算法
定义它是在实验室里先设计出于某被研究现象或过程(即原型)相似的模型,然后通过模型,间接的研究原型规律性的实验方法。先依照原型的主要特征,创设一个相似的模型,然后通过模型来间接研究原型的一种形容方法。根据模型和原型之间的相似关系,模拟法可分为物理模拟和数学模拟两种。算法思路在设计语言中,可使用随机函数来模拟自然界中发生不可预测的情况实例摇骰子游戏原创 2016-07-26 11:09:11 · 1019 阅读 · 0 评论 -
算法:回溯(试探)算法
定义为求得问题的解,先选择某一种可能情况进行试探,在试探过程中,一旦发现原来选择的假设情况是错误的,就退回一步重新选择,继续向前试探,如此反复进行,直至得到解或者证明无解。 对解集合中的各解进行试探 { if(满足条件) { 保存结果 if(完成集合中所有解的试探) 输出解 else 重复本过程进行下一步的原创 2016-07-26 10:55:57 · 539 阅读 · 0 评论 -
算法:贪婪算法
定义贪婪算法(又称贪心算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。贪婪法是一个不追求最优解,只希望得到较为满意的解的方法。 因为它省去了为找最优解而穷尽所需的时间,所以贪婪法一般可以快速 得到满意的解。贪婪法在求解过程的每一步都选取一个局部最优的策略, 把问题规模缩小,最后把每一步的结果合并起来形成一个全局解。步骤:建立数学模型来描述问题,给定一个目标把求解的问题分成若干个子问题原创 2016-07-25 18:06:37 · 943 阅读 · 0 评论 -
算法:分治法
定义就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并步骤 分解:将求解的问题划分成若干规模较小的同类问题 求解:当子问题划分的足够小时,用简单的方法解决 合并:按照求解问题的要求,将子问题的解逐层合并,即最终解 实例例如求和,[-10,10],其中-10~0,公式结果都是1,0原创 2016-07-25 17:33:30 · 405 阅读 · 0 评论 -
算法:递归法
定义是一种直接或间接的调用自身的算法。 递归算法的具体实现:一般通过函数或者子过程来完成,在函数或子过程的内部,编写代码直接或间接的调用自己,即可完成递归操作。实例阶乘 代码:public class Recursion { /** * @param args * 递推算法 */ public static void main原创 2016-07-25 13:55:43 · 663 阅读 · 0 评论 -
算法:枚举(穷举)法
定义本质解释:就是从候选答案集合中选择正确答案满足条件可预先确定候选答案的数量候选答案的范围在求解之前必须有一个确定的集合 实例:填数游戏 java代码public class Enumerate { /** * @param args * 枚举法 填数游戏 * */ public static void main(String[] a原创 2016-07-25 13:36:39 · 2846 阅读 · 0 评论 -
算法:递推法
定义即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法分类1. 顺推法 :从已知条件出发,逐步推算出要解决问题的方法,图:斐波拉契数列。2. 逆推法 :从已知结果,用迭代表达式逐步推算出问题的开始条件,即顺推的逆过程。1.斐波拉契数列public class Recurrence { /** * @param args * 递推法-顺推法-斐波那契数列,兔原创 2016-07-25 11:07:39 · 1914 阅读 · 0 评论 -
算法:快速排序法
定义:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。快速排序的优点:速度快,效率高步骤: 1.从数列中挑选出一个元素,称该元素为“基准”; 2.扫描一遍数列,将所有比基准小的元素排在基准前面,所有比基准大的元素排在基准后面; 3通过递归将各子序列划分为更小的序列,直到把小于基准值元素的原创 2015-09-20 23:10:13 · 742 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2015-09-29 16:37:33 · 519 阅读 · 0 评论