码农需知的基础算法
2016-12-29 本文已影响41人
4VZhang
近些时日面试知名公司得到的痛心教训,不懂数据结构和算法的码农注定只是码农,不能称得上称职的工程师!最近开始涉猎算法和数据结构的相关知识,趁此机会写下自己的心得。
一、排序
1.选择排序:
![](https://img.haomeiwen.com/i792843/3234150125eb10b5.png)
2.交换排序:
![](https://img.haomeiwen.com/i792843/0d41de154a71b889.png)
![](https://img.haomeiwen.com/i792843/e1e38e2660aa837b.png)
3.插入排序以及改良版:
![](https://img.haomeiwen.com/i792843/079f17cb80125ffc.png)
![](https://img.haomeiwen.com/i792843/88b20ed86c6bb62c.png)
![](https://img.haomeiwen.com/i792843/3fd7f07b72ffdb21.png)
二、查找
1.二分查找:递归
![](https://img.haomeiwen.com/i792843/5c256ebb7a689aa1.png)
2.二分查找:非递归(循环)
![](https://img.haomeiwen.com/i792843/63347c06cead00a2.png)
三、节点遍历
![](https://img.haomeiwen.com/i792843/a1e53ebe7503eed4.png)
![](https://img.haomeiwen.com/i792843/7661d7525051681b.png)
四、数组去重
![](https://img.haomeiwen.com/i792843/7532d8e27de2ae62.png)
![](https://img.haomeiwen.com/i792843/fc133081f3324590.png)
和算法紧密相关的两个概念:
时间复杂度:找出算法中的基本语句,计算基本语句的执行次数的数量级,用大写O记号表示算法的时间性能。
空间复杂度:存储算法本身所占用的存储空间+算法的输入输出数据所占用的存储空间+算法的运行过程中临时占用的存储空间。