算法详情【选择排序】

来源:互联网 发布:vip域名百度收录吗 编辑:程序博客网 时间:2024/06/03 16:28

一、 简单选择排序

1.0为什么要学习简单选择排序

    简单选择排序是常用的排序,学习交换排序理解交换排序理念,是对其他排序有力的补充。尤其学过交换排序之后,每趟排序都要进行频繁的交换,如何改进,使用选择排序,每趟只是记住位置,最后才交换,每趟最多交换一次。   

1.1简单排序算法的思想

    思想选择最小的记录放在第一个位置,在剩下的记录中选择最小的放在第二个位置,依次类推,直到所有记录有序。

二、 简单选择排序算法

 $arr[$j]){   $k = $j;}}if($k != $i){ //交换位置$tmp = $arr[$i];$arr[$i] = $arr[$k];$arr[$k] = $tmp;}}return $arr;}$arr = array(5,4,3,2,1);$res = select_sort($arr);var_dump($res);// 一次排序// 1,4,3,2,5// 1,2,3,4,5?>

三、 时间复杂度分析

分析:

    N个数排序,需要N-1趟排序,每一趟最坏的情况比较N-1次,因此最坏的情况就是接近N*N次比较。

结论:

选择排序的时间复杂度O(n2)

稳定性:不稳定排序,因为存在不相邻元素之间的交换