『PHP学习笔记』系列五:选择排序

xiaoxiao2025-08-27  20

算法原理:

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。求得一个数组的最大值的下标,并将这个最大值下标的单元跟最后一个单元进行交换;然后,继续从剩余数据中取得最大值的下标,并将这个最大值下标的单元跟剩余的最后一个单元交换。以此类推,直到只剩下一个数据,就不用找了。

代码实现:

<?php //选择排序算法 //最大值与第一个元素交换的方式 function order1($numbers1) { $len1 = count($numbers1); //取得数组长度 for ($i = 0; $i < $len1 - 1; $i++) { //外循环 $max = $numbers1[$i]; //假设当前数组元素既是最大值,当前下标即为最大值下标 $max_index = $i; for ($j = $i + 1; $j < $len1; $j++) { //内循环 if ($max > $numbers1[$j]) { //将假定的最大值与内循环数组元素进行比较,取出最大值赋值给$max,最大值下标赋值给$max_index $max = $numbers1[$j]; $max_index = $j; } } //将最大值下标的数组元素与假定的最大值元素进行交换,完成最大值与第一个单元的交换过程 $numbers1[$max_index] = $numbers1[$i]; $numbers1[$i] = $max; } return $numbers1; //注意:return放在循环内会终止函数 } $arr = array(9, 8, 7, 5, 6, 4, 3, 2, 1); echo "<h2>选择排序</h2>"; echo "<pre>"; print_r(order1($arr)); echo "</pre><hr />"; ?>

运行结果:

转载请注明原文地址: https://www.6miu.com/read-5035322.html

最新回复(0)