1、选择排序法实例详解:
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- </head>
- <body>
-
- <?php
- //忽略notice级错误提示
- //error_reporting(E_ALL^E_NOTICE);
- ?>
- <?php
- /* 选择排序法的思路:就是再第一次循环中,假设第一个数是最小的;然后跟第二个数比较,一直比到最后,找出最小值,然后把最小值跟第一个数的位置互换;再进行下一次循环,找出最小值跟第二个位置的数互换;一直循环数组的个数减去1次;数组就成了有序的了 */
- //用函数封装选择排序法
- function selectSort(&$arr)
- //注意此处要加地址传递符号;因为数组默认传递的是值,不是地址;若不地址传递,排序的是$arr而不是$asd。
- {
- //$arr = array(1,5,3,9,4,8,12,3,0,7,7.6,3.4,6);
- //定义一个中间变量
- $temp = 0;
- //升序排序
- for($i=0;$i<count($arr)-1;$i++)
- {
- //假设$i就是最小的数
- $minVal=$arr[$i];
- //记录我认为最小数的下标
- $minIndex=$i;
- for($j=$i+1;$j<count($arr);$j++)
- { //如果我认为的最小值不是最小
- if($minVal>$arr[$j])
- {
- $minVal = $arr[$j];
- $minIndex = $j;
- }
- }
- //最后交换
- $temp = $arr[$i];
- $arr[$i] = $arr[$minIndex];
- $arr[$minIndex] = $temp;
- }
- }
- $asd = array(1,0,2,9,3,8,4,7,5,6);
- //调用选择排序法的函数
- selectSort($asd);
- //输出排序后数组 升序显示
- foreach($asd as $key=>$key_value)
- {
- echo '$asd['.$key."]=".$key_value."<br>";
- }
- ?>
- </body>
- </html>
|