PHP基础之数组排序

1.冒泡排序法:

function bubble($arr){
		$temp=0;
		$flag=false;
	
		for($i=0;$i<count($arr)-1;$i++){
				for($j=0;$j<count($arr)-1-$i;$j++){
					if($arr[$j]>$arr[$j+1]){
					$temp=$arr[$j];
					$arr[$j]=$arr[$j+1];
					$arr[$j+1]=$temp;
					$flag=true;
						}
				}
				if(!$flag){
					break ;
				}
				$flag=false;	
			}
			return $arr;
		}

2.选择排序法

function selectSort(&$arr){
			$temp=0;
		//外层循环
		for($i=0;$i<count($arr)-1;$i++){
		//假设最小的数是$arr[$i]
			$minVal=$arr[$i];
			$minIndex=$i;
			
			for($j=$i+1;$j<count($arr);$j++){
				if($minVal>$arr[$j]){
					$minVal=$arr[$j];
					$minIndex=$j;
				}
				}
				$temp=$arr[$i];
				$arr[$i]=$arr[$minIndex];
				$arr[$minIndex]=$temp;
			}
		}

3…插入排序法

function insertSort(&$arr){
		//假设第一个数是有序的
		for($i=1;$i<count($arr);$i++){
			//假设要插入的数和下标
			$insertVal=$arr[$i];
			$insertIndex=$i-1;
			//如果要插入的数比被插入的数还小
			while($insertIndex>=0&&$insertVal<$arr[$insertIndex]){
				$arr[$insertIndex+1]=$arr[$insertIndex];
				$insertIndex--;
				}
				//不成立就执行下面的
			$arr[$insertIndex+1]=$insertVal;		
			}
	}

猜你喜欢

转载自blog.csdn.net/weixin_42819066/article/details/85682325