zoukankan      html  css  js  c++  java
  • 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);
    ?>
    
  • 相关阅读:
    使用mybatis如果类属性名和数据库中的属性名不一样取值就会为null
    学习mybatis时出现了java.io.IOException: Could not find resource EmployeeMapper.xml
    配置mybatis-config.xml出现过很诡异的现象
    mybatis学习(一)
    报错cannot be cast to javassist.util.proxy.Proxy
    列车调度
    三角形
    土豪聪要请客(stol)
    Jams倒酒(pour)
    Data
  • 原文地址:https://www.cnblogs.com/lltong/p/2582223.html
Copyright © 2011-2022 走看看