插入排序(Insertion Sort):每次将一个待排序的记录,按其关键字大小插入到前面已经排序好的子文件中的适当位置,直到全部记录插入完成为止。
//插入排序(一维数组)function insert_sort($arr){ $count = count($arr); for($i=1; $i $tmp) { $arr[$i] = $arr[$j]; $arr[$j] = $tmp; $j--; } } return $arr;}
选择排序(Selection Sort):每次从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
//选择排序(一维数组)function selection_sort($arr){ $count = count($arr); for($i=0; $i<$count; $i++) { $k = $i; for($j=$i+1; $j $arr[$j]) { $k = $j; } if($k != $i) { $tmp = $arr[$i]; $arr[$i] = $arr[$k]; $arr[$k] = $tmp; } } } return $arr;}
冒泡排序(Bubble Sort):两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序记录位置。
//冒泡排序(一维数组)//实际效果是:每次循环将数组中最小的(本文来源gaodai#ma#com搞@@代~&码网搞代gaodaima码值放置到数组的最前段,然后,下一次循环不再循环已放置正确数组值的键,以此类推 function selection_sort($arr){ $count = count($arr); if($count <= 0) return false; for($i=0; $i$i; $j--) { if($arr[$j] < $array[$j-1]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j-1]; $arr[$j-1] = $tmp; } } } return $arr;}
快速排序:实质上和冒泡排序一样,是属于交换排序的一种应用。//快速排序(一维数组)function quick_sort($arr){ $count = count($arr); if($count <= 1) return $arr; $key = $arr[0]; $left_arr = array(); $right_arr = array(); for($i=1; $i<$count; $i++) { if($arr[$i] <= $key) $left_arr[] = $arr[$i]; else $right_arr[] = $arr[$i]; } $left_arr = quick_sort($left_arr); $right_arr = quick_sort($right_arr); return array_merge($left_arr,array($arr), $right_arr);}以上就介绍了PHP实现常见排序算法,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。