算法与数据结构
文章平均质量分 52
逗逗军001
c/c++
展开
-
选择排序和堆排序
一 选择排序(1)思想假设有十张扑克牌放在桌上,我们需要按从小到大的顺序拿到手上,每次只能选择一张牌拿到手上,那么每一次我们都必须从桌上的扑克牌中选择最小的牌拿起来,一次循环十次,这样就将扑克牌按从小到的顺序拿到手上了。这就是选择排序。(2)实现[cpp] view plain copy print?//选择排序 //输入:待排序数组(A)和数组个数(n) //输出:按从小到大排序的数组(A)转载 2017-05-19 18:02:28 · 169 阅读 · 0 评论 -
冒泡排序
[cpp] view plain copy print?<span style=“font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);”>一.基本概念</span> <span style="font-family: Arial, Helvetica, sans-serif; backgro转载 2017-05-19 18:00:44 · 989 阅读 · 0 评论 -
set容器
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。 平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。 构造set集合主要目转载 2017-05-19 15:50:34 · 202 阅读 · 0 评论 -
算法导论15章习题
15.1-1由公式(15.3)的初始条件T(0)=1证明公式(15.4)成立(1)T(N)=T(0)+T(1)+…T(N-1)=>T(N+1)=(2)T(0)+T(1)+…T(N-1)+T(N) (2)-(1)即可推出 T(N+1)=2T(N) … T(2)=2T(1) T(1)=2T(0)=>T(N)=2^N15.1-2证明贪心策略( Pi/i)不能总保证得到最优切割方案假如 长度n=4原创 2017-06-19 13:08:10 · 3416 阅读 · 0 评论 -
动态规划问题之 钢条切割
动态规划与分治算法异同:分治算法将问题划分为互不相交的子问题,递归的求解子问题。分治算法会做出许多不必要的工作,会反复求解那些公共子问题。而动态规划对子问题只求解一次,将其存储在一个表格里面,无需每次都重新计算。动态规划通常用来求解最优化问题,这个问题可能有许多可行解,每个解都有一个值,我们希望寻找具有最优值的解。我们称这样的解为问题的一个最优解,而不是最优解,因为可能有多个解达到最优值。(1)根据原创 2017-06-09 17:47:29 · 900 阅读 · 0 评论 -
动态规划之矩阵链乘法
问题描述与分析:给定n个矩阵的序列,(A1,A2…An),我们希望计算他们的乘积 A1*A2..*An 例如如果矩阵链为(A1 A2 A3 A4 ) 那么共有五种完全括号化的形式: 运用动态规划方法:第一步:寻找最优子结构,为了对AiAi原创 2017-06-10 00:05:36 · 268 阅读 · 0 评论 -
动态规划之最长公共子序列
给定两个序列 X 和Y ,如果Z既是X的子序列又是Y的子序列,我们称它是公共子序列。设定 c[i][j]表示Xi与Yi公共子序列个数则 c[i][j] result i,j c[i][j]= 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0 且Xi=Yj c[i][j]= max(c[i-1][j],c[i][j-1]) i,原创 2017-06-13 18:53:42 · 197 阅读 · 0 评论 -
分治策略之最大子数组问题
问题描述:问题:一个整数数组中的元素有正有负,在该数组中找出一个连续子数组,要求该连续子数组中各元素的和最大,这个连续子数组便被称作最大连续子数组。比如数组{2,4,-7,5,2,-1,2,-4,3}的最大连续子数组为{5,2,-1,2},最大连续子数组的和为5+2-1+2=8。解问题:一、暴力解法:#include<iostream>using namespace std;class solut原创 2017-08-02 15:22:31 · 327 阅读 · 0 评论 -
C++ STL 之 unordered_set 介绍
简介 C++ 11中出现了两种新的关联容器:unordered_set和unordered_map,其内部实现与set和map大有不同,set和map内部实现是基于RB-Tree,而unordered_set和unordered_map内部实现是基于哈希表(hashtable),由于unordered_set和unordered_map内部实现的公共接口大致相同,所以本文以unor转载 2017-08-11 17:14:17 · 23207 阅读 · 0 评论