zoukankan      html  css  js  c++  java
  • 冒泡排序

    php版:

    <?php
    $arr = [1,3,8,2,4,9,7];
    print_r(bubbleSort($arr));
    function bubbleSort($arr){
        $flag = false;
        $len = count($arr);
        $count_swap = $count_loop = 0;
        for($i = 1;$i < $len;$i++){
            for($k = 0;$k < $len - $i;$k++){
                $count_loop += 1;
                if($arr[$k] > $arr[$k + 1]){
                    $tmp = $arr[$k + 1];
                    $arr[$k + 1] = $arr[$k];
                    $arr[$k] = $tmp;
                    
                    $flag = true;
                    $count_swap += 1;
                }
            }
            //如果2层循环没有交换的话,则退出,减少循环次数
            if(!$flag){
                break;
            }
        }
        
        echo '交换次数:' . $count_swap . '<br />';
        echo '循环次数:' . $count_loop . '<br />';
        return $arr;
    }

    python版:

    num_list = [
        [1,9,8,5,6,7,4,3,2],
        [1,2,3,4,5,6,7,8,9],
        [1,2,3,4,8,6,7,9,5]
    ]
    nums = num_list[2];
    print(nums);
    length = len(nums)
    count_swap = 0
    count = 0
    flag = False
    for i in range(length) :
        for j in range(length - i - 1) :
            count += 1
            print(j,j+1)
            if nums[j] > nums[j + 1] :
                tmp = nums[j]
                nums[j] = nums[j + 1]
                nums[j + 1] = tmp
                count_swap += 1
                flag = True
                print("swap")
        print("")
        if not flag :
            break
    print(nums,count_swap,count)
  • 相关阅读:
    Qt 学习之路:Canvas
    Qt 学习之路:模型-视图高级技术
    Qt 学习之路 :视图代理
    Qt 学习之路 :动态视图
    Qt 学习之路 :Repeater
    Qt 学习之路 :Qt Quick Controls
    mysql-gdb--oracle
    redis-BOOK
    2016qconbeijing
    LINUX 内核月报 taobao
  • 原文地址:https://www.cnblogs.com/nr-zhang/p/10955723.html
Copyright © 2011-2022 走看看