服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - php数据结构 算法(PHP描述) 简单选择排序 simple selection sort

php数据结构 算法(PHP描述) 简单选择排序 simple selection sort

2019-12-10 13:26PHP教程网 PHP教程

一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置

代码如下:


<?php 
/** 
* 简单选择排序 simple selection sort 

* 原理: 一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上数。 
*/ 
function sort_simple_selection($list) 

$len = count($list); 
if(empty($len)) return $list; 
for($i = 0;$i < $len; $i++) 

$min = $i; 
for($j = $i + 1; $j < $len; $j++) 

//if($list[$j] > $list[$min]) // 从大到小 
if($list[$j] < $list[$min]) // 从小到大 

$min = $j; 

echo implode(',',$list)."#pos=".($min + 1)." min=".$list[$min]."<br/>"; 

if($min != $i) 

$temp = $list[$i]; 
$list[$i] = $list[$min]; 
$list[$min] = $temp; 

echo "-------------------------<br/>"; 


$list = array(4,3,2,1,5,7,3,7); 
$list = sort_simple_selection($list); 

延伸 · 阅读

精彩推荐