软件设计师---数据结构与算法应用

本文介绍了软件设计中常用的数据结构与算法,包括分治法(如快速排序和二分查找)、回溯法、贪心法(以背包问题为例)、动态规划法以及哈夫曼编码。通过这些方法,可以有效地解决复杂问题,提高程序效率。哈夫曼编码利用频率构建二叉树,实现数据压缩。
摘要由CSDN通过智能技术生成

一.分治法


其基本思想是把一个比较大的、复杂的问题,拆分成一些比较小的子问题,如快速排序算法

基本原则

1.该问题的规模缩小到一定的程度就可以容易地解决

2.该问题可以分解为若干个规模较小的相同问题

3.利用该问题分解出的子问题的解可以合并为该问题的解

4.该问题所分解出的各个子问题是相互独立的

分治法——递归技术

递归,就是在运行的过程中调用自己

图注:该算法的目的是求这样一个数列,由零开始的,每一个数都等于前面两个数之和的数列,该算法操作即:将F(3)转换为F(1)和F(2)之和,F(4)转换为F(2)和F(3)之和.....这样可以使所有的F(n)都能化为F(1)和F(0)的和

分治法——二分法查找

二.回溯法

基本原则

概念:回溯法是一种选

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cirrod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值