一、排序算法概述
- 读过数据结构与算法这本书的应该知道,排序算法有几种最常用最基本的算法,包括:冒泡排序、选择排序、插入排序、希尔排序
- 下面使用php来分别讨论下这些排序算法的实现
二、冒泡排序
- 冒泡排序:为了依次确定数组每个位置上的正确顺序的元素,通过比较当前位置与循环遍历的元素的大小,然后两个数字进行互换位置,确定每个位置的正确顺序的元素,实现升序或者降序。
- 如果是升序,在两个元素互换位置的时候看起来就像较大的那个数字不断的冒泡排到后边。
- 此算法中通常有两层循环,外层循环的元素与内层循环的元素进行比较并且互换位置,除了最后一个元素不需要比较。
- 内层循环的元素从外层元素的下一个元素开始遍历,将内层的元素分别和外层的元素进行比较,互换位置,直到外层的元素都确定。
- 外层循环,每循环一次,就确定一个位置的元素。
- 代码:
$arr = [23,3,43,233,2,1,34,0,21234,344];
$len = count($arr);
for($i=0; $i<$len-1; $i++){
for($j=$i+1; $j<$len; $j++){
if($arr[$j] < $arr[$i]){
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp;
}
}
}
echo '<pre>';
print_r($arr);