之前自学数据结构的时候看过c语言版的四种基本排序法,c语言都忘的差不多了,最近有空就用php将四种排序法重新写了一遍,复习一下日益生疏的算法。直接贴上代码。
$i; $j--) { if($arr[$j]>$arr[$j-1]){ continue; }else{ //冒泡交换 $temp=$arr[$j-1]; $arr[$j-1]=$arr[$j];; $arr[$j]=$temp; $num++; } } } return $arr;}p(bubblesort($arr));/***选择排序法* @param $arr 排序数组*思路:每一轮循环,找出最小的数字,把其下标保存到最左方数字*而找出最小数字的方法是:和右方数字比较,若右方比较小,则保存其下标,再将此下标对应的值和*下一个右方数字比较直到所有右方数字比较一遍,再将此最小值存放在最左方数字**/function selectsort($arr){ print(**选择排序法**); $len=count($arr); $buff=0; for ($i=0; $i $arr[$j+1]){ $temp=$j+1;//若右方数字更小,则保存其下标,用来跟后面的数据比较 } } //得到最小的数字下标 if($temp!=$i){ //如果下标不是$i则交换,不然就没必要 $buff=$arr[$temp]; $arr[$temp]=$arr[$i]; $arr[$i]=$buff; } } return $arr;}p(selectsort($arr));/***插入排序法* @param $arr 排序数组*思路:假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中。即把第二个数据插入到*第一个数据之中,使其形成一个有序数组,然后再讲第三个数插入到前面两个数组成的有序数组中,形成*有序数组,如此反复最后完成排序**/function insertsort($arr){ print(**插入排序法**); $len=count($arr); for ($i=1; $i =0; $j--) { if($temp
运行结果:
以上就介绍了php实现冒泡排序,选择排序,插入排序和快速排序,包括了快速排序,插入排序方面的内容,希望对php教程有兴趣的朋友有所帮助。