一直在写代码学习,写代码学习,……………..
直到10年后的有一天,才真正意义上的思考算法、速度大O、效率等的问题。
当遇到任何的一个需求时,考虑算法,我的脑子里总会有如下这些算法思想或者说要准备的条件,也或者说依据等等值得考虑的内容。
1,数据的结构是什么?
2,是循环,还是判断来解决。
3,是比较吗?
4,什么样的算法效率更高。O(n) 或 O(log n)
5,基点或者说开始,我还会考虑数据结构的结束。(开始也或者说基准)
6,要不重新组装数据结构。
7,返回的结果是什么
8,是函数,是类,还是api的调用
9,是自已写,还是拿来用,百度找
10,排序啊,递归啊,快排啊,考虑散列表啊,广度优先搜索,狄克斯特拉算法,贪婪算法,动态的规划,K最近等等。
最后的学习还是回归数据的本身结构和有趣的数据算法。
// 查出最小f索引值$K
function seleval($arr){
// 定位基准
$v = $arr[0];
$k = 0;
for($i=1; $i<count($arr); $i++){
//echo $arr[$i];
if($arr[$i] < $v){ //6<10
$v=$arr[$i]; //$v =6
$k =$i; // $k=1
}
}
return $k;
}
$ar = [10,6,5,7,8]; //0 1 2 3 4 5
echo seleval($ar);
/*
1,数据结构
2,循环,比较
3,开始,结束
4,返回值
5,是否组装拼接
6,速度和效率的问题
*/