三个简单的算法——选择排序
2017-01-22 17:57
225 查看
(算法用php实现)
先贴代码
显示结果:
选择排序简介:
假设数组有n个元素,第一次找出最大的元素和它的下标,与数组末尾那个元素进行交换;第二次遍历找出目前n-1个元素中最大的元素和它的下标,并且与目前最后一个交换。依此类推,直至只剩最后一个元素。
要求:
1:假设数组元素个数为n个;
2:进行查找最大值的趟数为n-1;
3:每一趟都要求出剩余元素中的最大值,每一次剩余元素个数都比上一次少一个,第一次一共有n个元素;
4:每一趟找出最大元素之后,都要进行交换,即找出最大元素与此时剩余数组元素的最后一个进行交换,交换是通过元素的数组下标来实现的。
表格演示:
先贴代码
选择排序
<?php echo "<br/>快速排序:<br/>"; $arr = array(2,3,5,1,7,3,9,12,324,0); $n = count($arr); for($i = 0;$i < $n;++$i){ $max = $arr[0]; $pos = 0; for($j = 0;$j < $n - $i;++$j){ if($arr[$j] > $max){ $max = $arr[$j]; $pos = $j; } } $t = $arr[$n-$i-1]; $arr[$n-$i-1] = $max; $arr[$pos] = $t; } echo "排序后:<br/>"; print_r($arr); ?>
显示结果:
选择排序简介:
假设数组有n个元素,第一次找出最大的元素和它的下标,与数组末尾那个元素进行交换;第二次遍历找出目前n-1个元素中最大的元素和它的下标,并且与目前最后一个交换。依此类推,直至只剩最后一个元素。
要求:
1:假设数组元素个数为n个;
2:进行查找最大值的趟数为n-1;
3:每一趟都要求出剩余元素中的最大值,每一次剩余元素个数都比上一次少一个,第一次一共有n个元素;
4:每一趟找出最大元素之后,都要进行交换,即找出最大元素与此时剩余数组元素的最后一个进行交换,交换是通过元素的数组下标来实现的。
表格演示:
相关文章推荐
- Unity A*寻路三个简单实用的算法
- 三个简单的算法—冒泡排序
- 【基础算法】排序-简单排序之二(选择排序)
- Unity A*寻路三个简单实用的算法
- 用SHA1或MD5 算法加密数据(示例:对用户身份验证的简单实现)
- RLE流压缩——简单算法
- 最短路径(校园导游)的简单算法
- 将RGB值转换为灰度值的简单算法
- 全排列的泛型算法的简单实现
- 三个分组密码算法
- 用SHA1或MD5 算法加密数据(示例:对用户身份验证的简单实现)
- 一个简单的Hash表算法 zz
- 简单的本周算法
- (C语言)二分算法实现简单猜数
- 一个简单的子集产生算法
- 用SHA1或MD5 算法加密数据(示例:对用户身份验证的简单实现)
- 一个简单实用的遗传算法c程序(转载)
- 一个将阿拉伯数字转换成中文大写的最简单算法
- TimeRecorder V4.17.3简单算法分析
- 算法的三个基本问题