简单的选择排序算法:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换
<?php class Sort{ /** * 简单的选择排序 * * @param unknown_type $arr */ public function selectSort(&$arr) { $len=count($arr); for ($i=0;$i<$len;$i++) { $min=$i; for ($j=$i+1;$j<=$len-1;$j++) { if ($arr[$min]>$arr[$j]) {//如果找到比$arr[$min]较小的值,则将该下标赋给$min $min=$j; } } if ($min!=$i){//若$min不等于$i,说明找到了最小值,则交换 $this->swap($arr[$i],$arr[$min]); } } } /** * 将$a和$b两个值进行位置交换 */ public function swap(&$a,&$b) { $temp=$a; $a=$b; $b=$temp; } } $arr=array(4,6,1,2,9,8,7,3,5); $test=new Sort(); $test->selectSort($arr);//简单的选择排序 // var_dump($arr); ?>
简单选择排序的特点:交换移动数据次数相当少,从而节约了相应的时间
简单选择排序的时间复杂度分析:
无论最好最差的情况,其比较次数都是一样多,第i趟排序需要进行n-i次关键字的比较,此时需要比较n(n-1)/2次。所以最终的时间复杂度是O(n^2)
尽管与冒泡排序同为O(n^2),但选择排序的性能还是略优于冒泡排序的。
本文向大家介绍C++选择排序算法实例,包括了C++选择排序算法实例的使用技巧和注意事项,需要的朋友参考一下 选择排序 选择排序是一种简单直观的排序算法,它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确
主要内容:选择排序算法的具体实现对数据量较少的序列实现升序或降序排序,可以考虑使用 选择排序算法,它对应的时间复杂度为 。 排序排序算法对含有 n 个元素的序列实现排序的思路是:每次从待排序序列中找出最大值或最小值,查找过程重复 n-1 次。对于每次找到的最大值或最小值,通过交换元素位置的方式将它们放置到适当的位置,最终使整个序列变成有序序列。 举个例子,我们使用选择排序算法对 {14, 33, 27, 10, 35, 19,
本文向大家介绍汇编实现简单选择排序的方法示例,包括了汇编实现简单选择排序的方法示例的使用技巧和注意事项,需要的朋友参考一下 上阵子重温数据结构,差不多更新到排序。这学期学了汇编语言,其中有几个实验便是实现内部排序算法。以下是实现简单选择排序的程序设计: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
JavaScript算法-选择排序 选择排序 选择排序从数组的开头开始,将第一个元素和其他元素进行比较。检查完所有元素后,最小的元素会被放到数组的第一个位置,然后算法会从第二个位置继续。这个过程一直进行,当进行到数组的倒数第二个位置时,所有的数据便完成了排序。 选择排序会用到嵌套循环。外循环从数组的第一个元素一定到倒数第二个元素;内循环从第二个数组元素移动到最后一个元素,查找比当前外循环 func
本文向大家介绍python选择排序算法实例总结,包括了python选择排序算法实例总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了python选择排序算法。分享给大家供大家参考。具体如下: 代码1: 代码2: 代码3 希望本文所述对大家的Python程序设计有所帮助。
本文向大家介绍php选择排序法实现数组排序实例分析,包括了php选择排序法实现数组排序实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了php选择排序法实现数组排序的方法。分享给大家供大家参考。具体分析如下: 选择排序法的基本思路:直接用案例来说明吧,比如有一个数组$arr = array(2,6,3,9),从大到小排序。 第一次大循环:它首先假设$arr[0]为最大值,然后分别跟$