首页 > php代码 > php 矩阵转置 求素数 冒泡排序 选择排序例子

php 矩阵转置 求素数 冒泡排序 选择排序例子

文章为各位初学php的朋友提供一篇关于php 矩阵转置 求素数 冒泡排序 选择排序例子,希望这个例子可以帮助到各位朋友哦。

关于矩阵转置:矩阵是指纵横排列的二维数据表格

关于求素数:质数公式,又称素数公式,在数学领域中,表示一种能够仅产生质数(素数)的公式。即是说,这个公式能够一个不漏地产生所有的质数,并且对每个输入的值,此公式产生的结果都是质数。由于质数的个数是可数的,因此一般假设输入的值是自然数集(或整数集及其它可数集)。迄今为止,人们尚未找到易于计算且符合上述条件的质数公式,但对于质数公式应该具备的性质已经有了大量的了解

冒泡选择排序:是两种排序方法就不介绍了

例子

<?php
header("content-type:text/html;charset=utf-8");
/**
 *
 * PHP版数据结构基本算法
 * 1.矩阵转置
 * 2.求素数
 * 3.冒泡排序
 * 4.选择排序
 */
/**
 * 矩阵转置
 *
 * @param array $matrix 待转置的矩阵
 * @param array return 转置后的矩阵
 *
 */
function transposition($matrix) {
    $i = 0;
    $j = 0;
    foreach ($matrix as $line) {
        foreach ($line as $element) {
            $tm[$j++][$i] = $element;
        }
        $j = 0;
        $i++;
    }
    return $tm;
}
$matrix = array(
    array(
        1,
        2,
        3,
        'a'
    ) ,
    array(
        4,
        5,
        6,
        'b'
    ) ,
    array(
        7,
        8,
        9,
        'c'
    ) ,
);
echo "<br/>转置前的矩阵:";
foreach ($matrix as $line) {
    echo "<br/>";
    foreach ($line as $value) {
        echo $value . "&nbsp;&nbsp;";
    }
}
$tm = transposition($matrix);
echo "<br/>转置后的矩阵:";
foreach ($tm as $line) {
    echo "<br/>";
    foreach ($line as $element) {
        echo $element . "&nbsp;&nbsp;";
    }
}
/**
 * 求素数
 *@param int  $n 求2~$n内的所有素数
 *@return array 返回2~$n所有的素数集合
 *
 */
function primenumber($n) {
    $i = 3;
    $prime = array(
        2
    );
    $tag = true;
    while ($i <= $n) {
        foreach ($prime as $value) {
            if ($i % $value == 0) {
                $tag = false;
                break;
            }
            $tag = true;
        }
        if ($tag) {
            $prime[] = $i;
        }
        $i++;
    }
    return $prime;
}
$n = 200;
$prime = primenumber($n);
echo "<br />2~{$n}内的素数有:<br />";
foreach ($prime as $value) {
    echo $value . "&nbsp;&nbsp;";
}
/**
 * 冒泡排序
 *
 *@param array $data 待排序的数组
 *@param int $tag 0表示由小到大排序,1表示由大到小排序
 *@param array 排序后的结果
 *
 */
function bubblingsort($data, $tag = 0) {
    $arrlen = count($data);
    for ($i = $arrlen - 1; $i >= 0; $i--) {
        for ($j = 0; $j < $i; $j++) {
            if ($data[$i] > $data[$j]) {
                if ($tag == 1) {
                    $m = $data[$j];
                    $data[$j] = $data[$i];
                    $data[$i] = $m;
                }
            } else {
                if ($tag == 0) {
                    $m = $data[$i];
                    $data[$i] = $data[$j];
                    $data[$j] = $m;
                }
            }
        }
    }
    return $data;
}
$data = array(
    34,
    22,
    2,
    56,
    90
);
echo "<br/>冒泡排序前:<br/>";
foreach ($data as $value) {
    echo $value . "&nbsp;&nbsp;";
}
$data = bubblingsort($data);
echo "<br/>由小到大排序后:<br/>";
foreach ($data as $value) {
    echo $value . "&nbsp;&nbsp;";
}
$data = bubblingsort($data, 1);
echo "<br/>由大到小排序后:<br/>";
foreach ($data as $value) {
    echo $value . "&nbsp;&nbsp;";
}
/**
 * 选择排序
 *
 *@param array $data 待排序的数组
 *@param int $tag 0表示由小到大排序,1表示由大到小排序
 *@param array 排序后的结果
 *
 */
function selectsort($data, $tag = 0) {
    $arrlen = count($data);
    for ($i = 0; $i < $arrlen - 1; $i++) {
        for ($j = $i + 1; $j < $arrlen; $j++) {
            if ($data[$i] > $data[$j]) {
                if ($tag == 0) {
                    $m = $data[$i];
                    $data[$i] = $data[$j];
                    $data[$j] = $m;
                }
            } else {
                if ($tag == 1) {
                    $m = $data[$i];
                    $data[$i] = $data[$j];
                    $data[$j] = $m;
                }
            }
        }
    }
    return $data;
}
$data = array(
    34,
    22,
    2,
    56,
    90
);
echo "<br/>选择排序前:<br/>";
foreach ($data as $value) {
    echo $value . "&nbsp;&nbsp;";
}
$data = selectsort($data);
echo "<br/>由小到大排序后:<br/>";
foreach ($data as $value) {
    echo $value . "&nbsp;&nbsp;";
}
$data = selectsort($data, 1);
echo "<br/>由大到小排序后:<br/>";
foreach ($data as $value) {
    echo $value . "&nbsp;&nbsp;";
}
?>


教程地址:http://www.phprm.com/code/75709.html

欢迎转载!但请带上文章地址^^

标签:foreach select

相关文章

发表留言