php 矩阵转置 求素数 冒泡排序 选择排序例子
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-08 15:27:57 浏览: 评论:0
文章为各位初学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." ";
- }
- }
- $tm=transposition($matrix);
- echo "<br/>转置后的矩阵:";
- foreach($tm as $line){
- echo "<br/>";
- foreach($line as $element){
- echo $element." ";
- }
- }/**
- * 求素数
- *@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." ";
- }/**
- * 冒泡排序
- *
- *@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." ";
- }
- $data=bubblingsort($data);
- echo "<br/>由小到大排序后:<br/>";
- foreach($data as $value){
- echo $value." ";
- }
- $data=bubblingsort($data,1);
- echo "<br/>由大到小排序后:<br/>";
- foreach($data as $value){
- echo $value." ";
- }
- /**
- * 选择排序
- *
- *@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." ";
- } //开源软件:phpfensi.com
- $data=selectsort($data);
- echo "<br/>由小到大排序后:<br/>";
- foreach($data as $value){
- echo $value." ";
- }
- $data=selectsort($data,1);
- echo "<br/>由大到小排序后:<br/>";
- foreach($data as $value){
- echo $value." ";
- }
- ?>
Tags: php矩阵转置 php冒泡排序
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)