贪心算法解决活动选择问题
摘要:贪心算法并不能让问题的每一个情况都实现最优解 活动选择问题 使用穷举法 使用贪心算法解决活动选择问题 使用动态算法实现活动选择问题
阅读全文
posted @
2019-08-26 19:46
时光易逝-珍惜
阅读(479)
推荐(0)
插入排序
摘要:直接插入排序:时间复杂度为0(n^2) 第i个元素之前的元素已经排序好了,要把数组中的第i个元素排入已经排好的元素中,i要与i-1,i-2.......等元素比较,i大于他们就终止排序,i小于i-1或其他的就把i与他们交换,实现排序的功能 折半插入排序:是将要插入的值与有序数组[low mid hi
阅读全文
posted @
2019-08-26 19:46
时光易逝-珍惜
阅读(119)
推荐(1)
选择排序
摘要:简单选择排序 找到数组中的最大值或最小值时再将值进行交换 堆排序:将完全二叉树构造成大顶堆或小顶堆。 实现大顶堆:在每个顶推的父节点和子节点中找到最大值,放入父节点中(实质是大于父节点的子节点中拿出最大的子节点与父节点交换)
阅读全文
posted @
2019-08-26 19:45
时光易逝-珍惜
阅读(202)
推荐(0)
贪心算法解决钱币找零问题
摘要:using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Coin { class Program { static void Main(string[] args) { int[] value = new
阅读全文
posted @
2019-08-17 19:10
时光易逝-珍惜
阅读(1073)
推荐(0)
交换排序
摘要:1:冒泡排序 冒泡排序是相邻元素之间比较,如果是从前往后比较,则可以把最大的元素放入数组的最后一位,下一次循环把除最大的一位数外,剩下数的最大的再找出来,依次循环,把数组排序 这样的写法我们不管剩下的数据是否有序,程序会把所有的数据都比较的,这样可能会浪费资源,我们可以加一个标志位,当我们发现数据已
阅读全文
posted @
2019-08-11 08:33
时光易逝-珍惜
阅读(148)
推荐(0)
数据结构之树
摘要:树:有n(n>=0)个节点的有限集合 ,n=0时为空树,n=1只有一个根节点,n>1有子节点的树 子树:B C 是A的子树,D是B的子树 根节点:A是树的根节点,一个树最多只有一个根节点 度:拥有子节点的个数。A的度为2,B的度为1 树的层次:A是在第一层,G在第四层 注:树最多只有一个根节点,一个
阅读全文
posted @
2019-08-09 10:11
时光易逝-珍惜
阅读(227)
推荐(0)
动态规划算法
摘要:动态规划算法: 切割钢条问题:不同长度的钢条的价格是不同的,怎样切割获取的利润最大。 假设钢条的长度为n,怎样切割获取最大值 普通方法实现: 动态算法实现钢条切割的最大利润 从顶到底实现:钢铁的切割 从底到顶的钢条切割:会优化这个算法 动态规划解决背包问题 背包问题可以使用穷举法和动态规划算法 穷举
阅读全文
posted @
2019-08-01 14:20
时光易逝-珍惜
阅读(128)
推荐(0)
分治算法
摘要:分治算法:把一个规模较大的复杂问题拆分成一些规模较小的问题,规模较小的问题继续拆分,直到这个问题变得不复杂,能解决为止。 分治算法解决的一些问题:二分搜索 大整数乘法 合并排序 快速排序 线性时间排序 最大子数组 详细分析最大子数组:最大子数组有两种解决方法,1:暴力求解。2:用分治算法. 暴力求解
阅读全文
posted @
2019-07-31 16:13
时光易逝-珍惜
阅读(158)
推荐(0)