数据结构与算法
u013746108
这个作者很懒,什么都没留下…
展开
-
编程的灵魂
编程的灵魂:数据结构+算法 程序 = 数据结构+算法+程序设计语言 .由上面的公式可以看出,程序设计中数据结构和算法是最重要的,是编程的灵魂. .数据结构式算法实现的基础,算法总是要依赖于某种数据结构来实现的.往往是发展一种算法的时候,构建了适合于这种算法的的数据结构.一种数据结构如果脱离了算法往往就没有存在的价值了. 算法的作用:解决任何一个实际问题,都不可...2016-05-28 23:12:31 · 158 阅读 · 0 评论 -
常见查找
简单查找: 顺序查找: 从线性表的一端开始,依次将每个记录的关键字与给定值进行比较,若某个记录的关键字等于给定值,表示查找成功,返回记录序号;若将线性表中所有记录都比较完,扔未找到关键字与给定值相等的记录,则表示查找失败,返回 一个失败值. public class QuerySearch { public static int[] Data = { 65,...2016-07-02 21:49:15 · 107 阅读 · 0 评论 -
常见排序
排序概念: 1.内部排序: 工具类中定义交换数组元素、生成数据源等方法(用于下面的排序): import java.util.Random; public class SortUtil { // 通过数组下标交换元素位置 public static void swap(int[] data, int i, int j) { int temp ...2016-06-16 22:38:19 · 88 阅读 · 0 评论 -
常见数据结构
一、线性结构 1.最简单的结构:线性表 线性表具有以下特征: - 有且只有一个"首元素"; - 有且只有一个"末元素"; - 除末元素之外,其余元素均有唯一的后继元素; - 除首元素之外,其余元素均有唯一的前去元素; 对于线性表主要可进行以下操作: - 添加节点 - 插入节点 - 删除节点 - 查找节点 - 遍历节点 ...2016-06-15 22:36:04 · 117 阅读 · 0 评论 -
试探算法
回溯算法(又叫试探算法) 为了求得问题的解,先选择某一种可能情况进行试探,在试探过程中,一旦发现原来的选择的假设情况是错误的,就退回一步重新选择,继续向前试探,如此反复进行,直至得到解或者证明无解. 实例:生成彩票号码组合. 假设有一种彩票,每注由7个1-29的数字组成,且这7个数字不能相同,编写程序生成所有的号码组合. Java代码描述: public clas...2016-06-02 20:21:47 · 121 阅读 · 0 评论 -
贪婪算法
贪婪算法基本思路:从问题的某一个初始解出发逐步逼近给定的目标,以尽可能块地求得更好的解.当达到算法中的某一步不能再继续前进时,就停止算法,给出近似解. -不能保证最后的解释最优的; -不能用来求最大或者最小解的问题; -只能求满足某些约束条件的可行解得范围. 实例:换零钱 Java代码描述 public class Test { static in...2016-06-01 23:19:59 · 96 阅读 · 0 评论 -
分治算法
使用分治算法设计程序时,一般可以按以下步骤进行: (1)分解:将要求的问题划分成若干规模较小的同类问题; (2)求解:当子问题划分的足够小时,用较简单的方法解决; (3)合并:按求解问题的要求,将子问题的解逐层合并,即可构成最终的解. 实例:乒乓球比赛赛程安排 根据分治算法的思想,我们应该将问题进行拆分成规模较小的同类问题. ...2016-05-31 22:38:59 · 59 阅读 · 0 评论 -
递归算法
算法思路: 递归算法,就是一种直接或者间接地调用自身的算法.递归算法的具体实现过程一般通过函数或者子过程来完成,在函数或子过程的内部,编写代码直接或者间接地调用自己,即可完成递归操作. 这里列举出求阶乘和数制转换的递归操作实例. 实例1:求阶乘 public static int jiecheng(int i) { if(i!=1){ return...2016-05-30 22:26:29 · 65 阅读 · 0 评论 -
枚举算法
枚举(穷举)法 枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件: (1):可预先确定候选答案的数量; (2):候选答案的范围在求解之前必须有一个确定的集合. 实例1:填数游戏. Java代码描述: public static void main(String[] args) { int multi = 1; int re...2016-05-29 10:11:27 · 168 阅读 · 0 评论 -
递推算法
递推算法: 递推算法使用"步步为营"的方法,不断利用已有的信息推导出新的东西. -顺推法:是指从已经条件出发,桌布推算出要解决问题的方法.例如:斐波那契数列就可以通过顺推法不断递推出新的数据. -逆推法:是从已知的结果出发,用迭代表达式逐步推算出问题开始的条件,既顺推法的逆过程. 顺推实例:题目:兔子的繁殖过程 Java代码描...2016-05-28 23:43:32 · 108 阅读 · 0 评论 -
无聊的整数
1.完数 如果一个数恰好等于其因子之和,这个数就称为完数. 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 求10000以内的所有完数的过程: (1)用n去除以1-n之间的所有整数,将能整除的被除数累加. (2)最后判断个因子之和是否等于数n,若相等,则数n为完数,输出该数和各个因子. public static void main(String[] ...2016-07-04 16:17:42 · 135 阅读 · 0 评论