关于排序算法的思想及实现

时间:2021-11-06 22:07:18

在搞懂算法之前我觉得非常有必要先弄明白排序算法的几种使用原理,这样才能不至于两天就忘的情况出现
$array = array(4,5,67,2,1,35,8);
1 冒泡排序
这应该是排序算法中最简单的一种算法了,实现思路:将相邻两个值进行比较,大的值向后移位,然后继续向下对比,一个循环之后可以确定的是最大的值一定在最后一位,然后继续循环,因为最后一位已经是最大的了,所以这一次的循环我们不在对比最后一位,往下同理,
2 选择排序
感觉要比冒泡排序容易理解的很多。实现思路:从未排序数组中取出最大值(或最小值),放到一个新的数组中,然后再从未排序的剩余数组中取最大值,放到新数组的前面,以此类推,这样就能得到一个升序排列的有序数组。

1 冒泡排序

for($i = 1;$i<count($array);$i++){
for($j=0;$j<count($array)-$i;$j++){
if($array[$j] > $array[$j+1]){
$b = $array[$j+1];
$array[$j+1] = $array[$j];
$array[$j] = $b;
}
}
}

2 选择排序