用php实现选择排序的解决方法


Posted in PHP onMay 04, 2013

1,定义:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

参考代码:

<?php
    //选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。    function selectSort(&$arr){
        //定义进行交换的变量
        $temp=0;
        for($i=0;$i<count($arr)-1;$i++){
            //假设$i就是最小值
            $valmin=$arr[$i];
            //记录最小值的下标
            $minkey=$i;
            for($j=$i+1;$j<count($arr);$j++){
                //最小值大于后面的数就进行交换    
                if($valmin>$arr[$j]){
                    $valmin=$arr[$j];
                    $minkey=$j;
                }
            }
            //进行交换
            $temp=$arr[$i];
            $arr[$i]=$arr[$minkey];
            $arr[$minkey]=$temp;
        }
    } 
    $arr=array(7,5,0,4,-1);
    selectSort($arr);
    print_r($arr);

?>
PHP 相关文章推荐
PHP中的超全局变量
Oct 09 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
Aug 20 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
phpnow php探针环境检测代码
Nov 04 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 PHP
yii2的restful api路由实例详解
May 14 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
基于PHP 面向对象之成员方法详解
May 04 #PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 #PHP
PHP命名空间(Namespace)的使用详解
May 04 #PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 #PHP
基于php验证码函数的使用示例
May 03 #PHP
基于MySQL体系结构的分析
May 02 #PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 #PHP
You might like
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
js 事件小结 表格区别
2007/08/13 Javascript
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
通过jquery 获取URL参数并进行转码
2014/08/18 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
vue mounted组件的使用
2018/06/18 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
python的类方法和静态方法
2014/12/13 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
Python 远程开关机的方法
2020/11/18 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
Kipling凯浦林美国官网:世界著名时尚休闲包袋品牌
2016/08/24 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
医学院四年学习生活的自我评价
2013/11/06 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
司机岗位职责说明书
2014/07/29 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
vue 给数组添加新对象并赋值
2022/04/20 Vue.js