临沧市网站建设,百度做网站联系电话,网页的制作与建设,asp网站建设实录最近面试好多公司考察算法#xff0c;特意整理了一下#xff1a; 1. 冒泡排序思路分析#xff1a;在要排序的一组数中#xff0c;对当前还未排好的序列#xff0c;从前往后对相邻的两个数依次进行比较和调整#xff0c;让较大的数往下沉#xff0c;较小的往上冒。即特意整理了一下 1. 冒泡排序 思路分析在要排序的一组数中对当前还未排好的序列从前往后对相邻的两个数依次进行比较和调整让较大的数往下沉较小的往上冒。即每当两相邻的数比较后发现它们的排序与排序要求相反时就将它们互换。 代码实现 $arrarray(1,43,54,62,21,66,32,78,36,76,39); function bubbleSort($arr) { $lencount($arr); //该层循环控制 需要冒泡的轮数 for($i1;$i$len;$i) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k0;$k$len-$i;$k) { if($arr[$k]$arr[$k1]) { $tmp$arr[$k1]; $arr[$k1]$arr[$k]; $arr[$k]$tmp; } } } return $arr; } 2. 选择排序 思路分析在要排序的一组数中选出最小的一个数与第一个位置的数交换。然后在剩下的数当中再找最小的与第二个位置的数交换如此循环到倒数第二个数和最后一个数比较为止。 代码实现 function selectSort($arr) { //双重循环完成外层控制轮数内层控制比较次数 $lencount($arr); for($i0; $i$len-1; $i) { //先假设最小的值的位置 $p $i; for($j$i1; $j$len; $j) { //$arr[$p] 是当前已知的最小值 if($arr[$p] $arr[$j]) { //比较发现更小的,记录下最小值的位置并且在下次比较时采用已知的最小值进行比较。 $p $j; } } //已经确定了当前的最小值的位置保存到$p中。如果发现最小值的位置与当前假设的位置$i不同则位置互换即可。 if($p ! $i) { $tmp $arr[$p]; $arr[$p] $arr[$i]; $arr[$i] $tmp; } } //返回最终结果 return $arr; } 3.插入排序 思路分析在要排序的一组数中假设前面的数已经是排好顺序的现在要把第n个数插到前面的有序数中使得这n个数也是排好顺序的。如此反复循环直到全部排好顺序。 代码实现 function insertSort($arr) { $lencount($arr); for($i1, $i$len; $i) { $tmp $arr[$i]; //内层循环控制比较并插入 for($j$i-1;$j0;$j--) { if($tmp $arr[$j]) { //发现插入的元素要小交换位置将后边的元素与前面的元素互换 $arr[$j1] $arr[$j]; $arr[$j] $tmp; } else { //如果碰到不需要移动的元素由于是已经排序好是数组则前面的就不需要再次比较了。 break; } } } return $arr; } 4.快速排序 思路分析选择一个基准元素通常选择第一个元素或者最后一个元素。通过一趟扫描将待排序列分成两部分一部分比基准元素小一部分大于等于基准元素。此时基准元素在其排好序后的正确位置然后再用同样的方法递归地排序划分的两部分。 代码实现 function quickSort($arr) { //先判断是否需要继续进行 $length count($arr); if($length 1) { return $arr; } //选择第一个元素作为基准 $base_num $arr[0]; //遍历除了标尺外的所有元素按照大小关系放入两个数组内 //初始化两个数组 $left_array array(); //小于基准的 $right_array array(); //大于基准的 for($i1; $i$length; $i) { if($base_num $arr[$i]) { //放入左边数组 $left_array[] $arr[$i]; } else { //放入右边 $right_array[] $arr[$i]; } } //再分别对左边和右边的数组进行相同的排序处理方式递归调用这个函数 $left_array quick_sort($left_array); $right_array quick_sort($right_array); //合并 return array_merge($left_array, array($base_num), $right_array); } 转载于:https://www.cnblogs.com/fukai-blog/p/7727898.html