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);
    ?>
    
  • 相关阅读:
    嵌入式入门 -第1章 学嵌入式从STM32开始
    如何学习Java
    如何学习嵌入式linux
    Linux OR windows 的启动全过程详解
    Makefile 易忘规则记录
    Makefile中的自动化变量
    Makefile中的文件名操作函数
    Makefile中的字符串处理函数
    关于错误"ftok: No such file or directory"
    linux查看yuv图像
  • 原文地址:https://www.cnblogs.com/lltong/p/2582223.html
Copyright © 2011-2022 走看看