dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5169|回复: 95

[功能实现] Python与PHP实现选择排序

  [复制链接]
  • TA的每日心情
    奋斗
    2024-4-23 21:44
  • 签到天数: 237 天

    [LV.7]常住居民III

    4425

    主题

    1434

    帖子

    9939

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    9939
    发表于 2019-1-14 20:34:47 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    选择排序Python实现
    [Python] 纯文本查看 复制代码
    import random
    
    # 生成待排序数组
    a=[random.randint(1,999) for x in range(0,36)]
    
    # 选择排序
    def selectionSort(array):
        i=0
        while i<len(array)-1:
            min = i
            j = i+1
    
            while j<len(array):
                if array[min] > array[j]:
                    min = j
                j = j+1
    
            if i != min:
                array[i],array[min] = array[min],array[i]
    
            i = i+1
    
    # 使用选择排序处理数组
    selectionSort(a)
    print(a)


    快速排序PHP实现
    [PHP] 纯文本查看 复制代码
    <?php
    // 生成待排序数组
    $a = [];
    for($i=0;$i<36;$i++){
        array_push($a,mt_rand(1,999));
    }
    shuffle($a);
    
    /**
     * 选择排序算法 selection sort
     * @param  [type] a 待排序数组的地址
     * @return null
     */
    function selectionSort(&$a){
        $min = 0;
        $len = count($a);
    
        for($i = 0; $i<$len-1; $i++){
            $min = $i;
    
            // 在下标为$i之后的数组元素中查找比$a[$i]小的元素
            for($j = $i+1; $j<$len; $j++){
                // 若找到比$a[$i]小的元素,则记录此元素的下标
                if($a[$min] > $a[$j]){
                    $min = $j;
                }
            }
            // 若找到比$a[$i]小的元素,则交换元素位置
            if($min != $i){
                $a[$i] += $a[$min];
                $a[$min] = $a[$i] - $a[$min];
                $a[$i] -= $a[$min];
            }
    
        }
    }
    
    selectionSort($a);
    var_dump($a);


    选择排序时间复杂度说明比较次数:n(n-1)/2
    交换次数:最好的时候为0,最差的时候为n-1次
    总时间复杂度:O(n2)
    尽管选择排序与冒泡排序的时间复杂度同为O(n2),但性能上还是要略优于冒牌排序。


    回复

    使用道具 举报

    该用户从未签到

    26

    主题

    8093

    帖子

    1091

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1091

    发表于 2019-1-15 07:30:15 | 显示全部楼层
    有竞争才有进步嘛

    该用户从未签到

    37

    主题

    7917

    帖子

    1069

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1069

    发表于 2019-1-15 09:28:13 | 显示全部楼层
    正需要,支持楼主大人了!

    该用户从未签到

    51

    主题

    7829

    帖子

    989

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    989

    发表于 2019-1-16 14:13:39 | 显示全部楼层
    有道理。。。

    该用户从未签到

    39

    主题

    7819

    帖子

    1026

    积分

    终身会员[B]

    积分
    1026

    发表于 2019-1-16 14:39:57 | 显示全部楼层
    好好 学习了 确实不错

    该用户从未签到

    32

    主题

    7817

    帖子

    974

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    974

    发表于 2019-1-17 22:10:08 | 显示全部楼层
    学习了,谢谢分享、、、

    该用户从未签到

    22

    主题

    7969

    帖子

    917

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    917

    发表于 2019-1-18 10:13:27 | 显示全部楼层
    不知该说些什么。。。。。。就是谢谢

    该用户从未签到

    2

    主题

    3508

    帖子

    -6

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    -6

    发表于 2019-1-19 15:58:49 | 显示全部楼层
    看帖回帖是美德!:lol

    该用户从未签到

    45

    主题

    7866

    帖子

    1031

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1031

    发表于 2019-1-20 14:45:36 | 显示全部楼层
    正需要,支持楼主大人了!

    该用户从未签到

    28

    主题

    7920

    帖子

    1033

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    1033

    发表于 2019-1-23 17:12:36 | 显示全部楼层
    我是来刷分的,嘿嘿
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-5-19 01:33 , Processed in 0.088747 second(s), 42 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表