当前位置:网站首页>Part I - Chapter 1 Overview
Part I - Chapter 1 Overview
2020-11-08 17:48:00 【Li Lihao】
Data structure introduction
Three reasons to use data structures : efficiency 、 abstract 、 reusability
Introduction to the algorithm : efficiency 、 abstract 、 reusability
General method of algorithm design : Random method 、 Divide and conquer method 、 Dynamic programming 、 The law of greed 、 Approximate method
General method of algorithm design
Random method
Random methods rely on the statistical properties of random numbers . For example, an example of applying the stochastic method is Quick sort .
Divide and conquer method
Divide and conquer contains 3 A step : decompose 、 solve 、 Merge . An example of divide and conquer is Merge sort
Dynamic programming
Dynamic programming is similar to divide and conquer , All of them decompose the larger problem into subproblems, and finally merge the results .
The difference , In dynamic planning , The way the problem is handled is related to the relationship between the subproblems . In divide and conquer , Each subproblem is independent .
therefore , In divide and conquer, you can use recursion ( The first 3 Chapter ) The way to solve each sub problem , Then merge the results with the results of other subproblems .
The law of greed
The greedy method can always make the best choice at present when solving problems . let me put it another way , It's not about the overall optimum , And it's just a local optimal solution in a sense .
An example of a greedy approach is Huffman coding ( The first 14 Chapter ), It's a data compression algorithm .
The most important part of Huffman coding is to build a Huffman tree ( Also known as the optimal binary tree ).
- (1) To build a Hoffman tree , From its leaf nodes, from the bottom up . Take each compressed symbol and the number of times they appear in the data ( frequency ) Save together as the root node of the binary tree .
- (2) Next , Select two root nodes with the minimum frequency as the left and right subtree nodes , Construct a new binary tree , And the frequency value of the new binary tree root node is the sum of the frequency values of the left and right subtree nodes .
- (3) Then repeat this step , Know to get the only tree , This is the final Hoffman tree .
The root node of the Huffman tree contains the total number of symbols in the data , Leaf nodes contain the original symbols and how often they appear .
Huffman coding is a greedy algorithm , Because every time it selects the most suitable two trees to merge .
Approximate method
The approximate method does not calculate the optimal solution , contrary , It only calculates “ Good enough. ” Solution . The approximate method is usually used to solve the problems that are expensive to calculate and unwilling to give up because of its value .
Salesman problem ( The first 16 Chapter ) It's a problem that is usually solved by approximation .
版权声明
本文为[Li Lihao]所创,转载请带上原文链接,感谢
边栏推荐
- write文件一个字节后何时发起写磁盘IO
- 实验
- Not a programmer, code can't be too ugly! The official writing standard of Python: pep8 everyone should know
- VirtualBox安装centos7
- latex入门
- Tencent: Although Ali's Taichung is good, it is not omnipotent!
- Use markdown
- go语言参数传递到底是传值还是传引用?
- (O) Analysis of service manager (1) BinderInternal.getContextObject
- 搭载固态硬盘的服务器究竟比机械硬盘快多少
猜你喜欢

Five phases of API life cycle

Solution of DEV-C + + unable to debug in Windows Environment

When to write disk IO after one byte of write file

关于adb连接手机offline的问题解决

我用 Python 找出了删除我微信的所有人并将他们自动化删除了

uni-app实战仿微信app开发

Function classification big PK! How to use sigmoid and softmax respectively?

函数分类大pk!sigmoid和softmax,到底分别怎么用?

Express框架

进入互联网得知道的必备法律法规有哪些?
随机推荐
第一部分——第1章概述
Express framework
学会了volatile,你变心了,我看到了
IT industry salary has been far ahead! Ten years later, is the programmer still a high paying profession?
Flink系列(0)——准备篇(流处理基础)
【Elasticsearch 技术分享】—— 十张图带大家看懂 ES 原理 !明白为什么说:ES 是准实时的!
jsliang 求职系列 - 07 - Promise
趣文分享:C 语言和 C++、C# 的区别在什么地方?
Builder pattern
Development of uni app imitating wechat app
Summary of interface test case ideas
[elastic search technology sharing] - ten pictures to show you the principle of ES! Understand why to say: ES is quasi real time!
[elastic search technology sharing] - ten pictures to show you the principle of ES! Understand why to say: ES is quasi real time!
What is forsage Ethereum smart contract? What is the global decline of Ethereum
C++的那些事儿:从电饭煲到火箭,C++无处不在
Liteos message queuing
Is parameter passing in go language transfer value or reference?
Dev-c++在windows环境下无法debug(调试)的解决方案
markdown使用
vim-配置教程+源码