记录所有算法相关的知识。写算法的时候,可以先写一个测试用例,这样更容易掌握和思考。以下算法可以直接运行。1.冒泡算法$arr[$j]){//这种形式更容易阅读list($arr[$i],$arr[$j])=array($arr[$j],$arr[$i]);}}}返回$arr;}2。快速排序。思路很简单,在一个数组中随机取一个值,以此为标准,比他小的放在她左边,比他大的放在他右边。经过递归,所有的值都会排到最后。$arr2[$index2]){$index2++;}else{$container[]=$arr1[$index1];//放入容器后,别忘了增加索引$index1++;$索引2++;}}returnarray_unique($container);}4.重写shuffle函数,shuffle一个数组1){for($i=0;$i<$n-1;$i++){$pop=array_shift($roundTable);array_push($roundTable,$pop);}array_shift($roundTable);}返回$roundTable[0];}7.二分法$index){$right=$mid-1;}elseif($arr[$mid]<$index){$left=$mid+1;}else{返回$mid;}}return-1;}8.找出集合中最大的连续数=0){if($maxSum<$currentSum)$maxSum=$currentSum;$currentSum+=$arr[$i];}else{$currentSum=$arr[$i];}}return$maxSum;}9.3sum.sort好序列,复杂度n^2如果没有排列,可以先用sortleft,所以不用担心i,left,right相等while($right>$left){$sum=$arr[$left]+$arr[$i]+$arr[$右];如果($sum<0){$left++;}elseif($sum>0){$right--;}else{$set=array($arr[$left],$arr[$i],$arr[$right]);$结果[]=$设置;//别忘了++,否则会死循环$left++;$对--;}}}返回$result;}
