• php冒泡排序和快速排序笔记


    <?php
    $arr = array(12,1,5,88,35,0,18,100,50,21,28,7,9,9.5);
    
    //交换两值
    function swap(&$m, &$n){
    	$temp = $m;
    	$m = $n;
    	$n = $temp;
    
    	/* 如数组中有小数时,以下方法会省略小数点后面的数
    	$m = $m ^ $n;
    	$n = $m ^ $n;
    	$m = $m ^ $n;
    	*/
    }
    
    //冒泡排序
    function bubbleSort($arr){
    	if(!is_array($arr)) return $arr;
    	$count = count($arr);
    	for($i=1; $i<$count; $i++){
    		for($j=0; $j<$count-$i;$j++){
    			if($arr[$j] > $arr[$j+1]){
    				/*
    				$temp = $arr[$j];
    				$arr[$j] = $arr[$j+1];
    				$arr[$j+1] = $temp;
    				*/
    				/*
    				$arr[$j] = $arr[$j] + $arr[$j+1];
    				$arr[$j+1] = $arr[$j] - $arr[$j+1];
    				$arr[$j] = $arr[$j] - $arr[$j+1];
    				*/
    				/*
    				$arr[$j] = $arr[$j] ^ $arr[$j+1];
    				$arr[$j+1] = $arr[$j] ^ $arr[$j+1];
    				$arr[$j] = $arr[$j] ^ $arr[$j+1];
    				*/
    				swap($arr[$j], $arr[$j+1]);
    			}
    		}
    	}
    	return $arr;
    }
    
    $arr2 = bubbleSort($arr);
    echo implode(',', $arr2).'<hr>';
    
    //冒泡排序
    function bubbleSort2($arr){
    	if(!is_array($arr)) return $arr;
    	$count = count($arr);
    	for($i=0; $i<$count-1; $i++){
    		for($j=$i+1; $j<$count; $j++){
    			if($arr[$i] < $arr[$j]){
    				/*
    				$arr[$i] = $arr[$i] + $arr[$j];
    				$arr[$j] = $arr[$i] - $arr[$j];
    				$arr[$i] = $arr[$i] - $arr[$j];
    				*/
    				swap($arr[$i], $arr[$j]);
    			}
    		}
    	}
    	return $arr;
    }
    $arr3 = bubbleSort2($arr);
    echo implode(',', $arr3).'<hr>';;
    
    //快速排序
    function quickSort($arr){
    	if(!is_array($arr)) return $arr;
    	$len=count($arr);
    	for($i=0; $i<$len; $i++){
    		$min = $arr[$i];
    		for($j=$i+1; $j<$len; $j++){
    			if($arr[$i] > $arr[$j]){
    				$temp = $arr[$i];
    				$arr[$i] = $arr[$j];
    				$arr[$j] = $temp;
    			}
    		}
    		$min = $arr[$j];
    	}
    	return $arr;
    }
    $arr4 = quickSort($arr);
    echo implode(',', $arr4);
    ?>
    
  • 相关阅读:
    使用公钥和私钥实现LINUX下免密登录
    XML入门
    JSP页面中的errorPage属性和web.xml<error-page>标签的区别
    JAVA、TOMCAT环境变量配置
    在Eclipse Neon中导入serlvet-api等jar包
    56. Merge Intervals
    55. Jump Game
    34. Find First and Last Position of Element in Sorted Array
    33. Search in Rotated Sorted Array
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/lltong/p/2582223.html
Copyright © 2020-2023  润新知