PHP数据结构(3) 选择排序机器时间复杂度
2014-12-12 10:19
246 查看
<?php
//选择排序
//选择排序:不稳定,时间复杂度 O(n^2)
//选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与//L[i]交换位 置。这样,经过i遍处理之后,前i个记录的位置已经是正确的了。
function selection_sort($array){
$count=count($array);//获取数组长度
//外循环,控制比较的趟数
for($i=0;$i<$count;$i++){
$min=$array[$i];//假设第一个元素为最小值
$min_index=$i;//获取最小元素的下标
//内循环,控制比较的次数,找出该趟最小数和$j进行交换
for($j=$i;$j<$count;$j++){
if($array[$j]<$min){
//当找到比$min小的值时,进行交换
$min=$array[$j];
$min_index=$j;//记录该趟找到的最小元素的下标
}
}
//将最小元素和该趟的第一个元素进行交换
if($min_index !=$i){
$temp=$array[$i];
$array[$i]=$array[$min_index];
$array[$min_index]=$temp;
}
}
return $array;
}
$arr=array(2,4,1,99,33,18,43);
$val=selection_sort($arr);
foreach($val as $key => $values){
echo "key:".$key."values:".$values."<br/>";
}
?>
//选择排序
//选择排序:不稳定,时间复杂度 O(n^2)
//选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与//L[i]交换位 置。这样,经过i遍处理之后,前i个记录的位置已经是正确的了。
function selection_sort($array){
$count=count($array);//获取数组长度
//外循环,控制比较的趟数
for($i=0;$i<$count;$i++){
$min=$array[$i];//假设第一个元素为最小值
$min_index=$i;//获取最小元素的下标
//内循环,控制比较的次数,找出该趟最小数和$j进行交换
for($j=$i;$j<$count;$j++){
if($array[$j]<$min){
//当找到比$min小的值时,进行交换
$min=$array[$j];
$min_index=$j;//记录该趟找到的最小元素的下标
}
}
//将最小元素和该趟的第一个元素进行交换
if($min_index !=$i){
$temp=$array[$i];
$array[$i]=$array[$min_index];
$array[$min_index]=$temp;
}
}
return $array;
}
$arr=array(2,4,1,99,33,18,43);
$val=selection_sort($arr);
foreach($val as $key => $values){
echo "key:".$key."values:".$values."<br/>";
}
?>
相关文章推荐
- PHP数据结构基本算法一:矩阵转置 求素数 冒泡排序 选择排序
- PHP数据结构(5)希尔排序及其时间复杂度
- 数据结构(C#)--冒泡、插入、快速、堆、归并、希尔、选择各种排序排序过程比较以及各种排序的所用时间的对比
- 数据结构排序问题---堆排序及各种排序时间空间复杂度
- 数据结构中排序和查找各种时间复杂度
- 排序算法之 选择排序 及其时间复杂度和空间复杂度
- 8大排序之-----(3)选择排序与时间复杂度
- DEDECMSv5.6 tags.php标签不能按照时间排序的问题
- 数据结构-排序: 选择排序(直接选择排序法)
- 数据结构-排序: 选择排序(堆选择排序法)
- 数据结构:算法的时间复杂度求法
- 数据结构时间复杂度的计算
- [转]PHP 中巧用数组降低程序的时间复杂度
- php数组应用之比较两个时间的相减排序
- 数据结构-算法的时间复杂度
- 选择排序的php实现
- PHP 中巧用数组降低程序的时间复杂度
- 数据结构-排序: 选择排序(堆选择排序法)
- PHP 用数组降低程序的时间复杂度
- 各种查找和排序的定义及时间复杂度