2018年4月

冒泡排序的小程序,用python来实现

class BubbleSortClass:
    # 排序
    def bSort(bubbleList):
        for i in range(len(bubbleList) - 1):
            for j in range(len(bubbleList) - 1 - i):
                if bubbleList[j] > bubbleList[j + 1]:
                    bubbleList[j], bubbleList[j + 1] = bubbleList[j + 1], bubbleList[j]
        return bubbleList

    #测试
    if __name__ == '__main__':
        Numbers = [10, 8, 6, 7, 3, 5, 4, 1, 2, 0, 9]
        newNumbers = bSort(Numbers)
        for num in newNumbers:
            print("%d " % num, end='')

运行的效果:

Running D:/workspace_python/hello/bSort.py
0 1 2 3 4 5 6 7 8 9 10 

小结:

对于上两篇中写到的分别用PHP和java实现冒泡排序的算法来看,使用python来写确实是另外一种感觉,python在控制程序块的时候不再使用{},确实很特别。当然配合好用的IDE更加能够帮助提高效率,本次使用的是PyCharm

最近学习了一下javase的基础知识,有了一点点的概念,今天就趁着还有一点印象,赶紧练习一下。跟上一篇一样,小程序也是实现一个冒泡排序。

package com.luoanman.test;

public class bSortClass {
    /**
     * 排序
     *
     * @param Numbers
     * @return
     */
    public static int[] bSort(int[] Numbers) {
        int tmp;
        for (int i = 0; i < Numbers.length; i++) {
            for (int j = 0; j < Numbers.length - i - 1; j++) {
                if (Numbers[j] > Numbers[j +1]){
                    tmp = Numbers[j];
                    Numbers[j] = Numbers[j +1];
                    Numbers[j +1] = tmp;
                }

            }
        }
        return Numbers;
    }

    /**
     * 打印
     * @param Numbers
     */
    public static void printNums(int[] Numbers) {
        for (int num : Numbers) {
            System.out.format("%d ", num);
        }
        return;
    }

    public static void main(String args[]){
        int[] Numbers  = {10, 8, 6, 7, 3, 5, 4, 1, 2, 0, 9};
        printNums(bSort(Numbers));
    }
}

运行的结果实现了10个数字从小到大排序的效果

0 1 2 3 4 5 6 7 8 9 10 

在练习的过程中,遇到swap方法的问题,由于java在处理int类型的参数传递时是值传递的方式,无法通过swap方法内部的交换来影响方法外部的值,因此不能够像在PHP里那样写一个简单的swap方法实现值的交换。

应该说是出于工作的原因,原本常用的PHP的开发不再能够应付平时的任务需要,因此专门去学习了一些java以及python的基础知识,与此同时,将电脑上的开发环境也整理了一下,比如,将之前使用的NetBeans和eclipse更换掉,重新安装了PHPstorm和idea用于PHP和java的编程练习,在软件注册上面,用到了之前保留的大学邮箱,在试用之后,认为PHPstorm的确要更加方便。用于练习,接下来会分别试用PHP、java以及python来编冒泡排序的小程序。

PHP版的代码如下:

<?php
/**
 * Created by PhpStorm.
 * User: luoam
 * Date: 2018/4/14
 * Time: 22:46
 */
class bSortClass
{
    /**
     * 互换两个值
     * @param $a
     * @param $b
     */
    function swap(&$a, &$b)
    {
        if ($a > $b) {
            $tmp = $a;
            $a = $b;
            $b = $tmp;
        }
    }

    /**
     * 排序
     * @param $numbers
     * @return mixed
     */
    function bSort($numbers)
    {
        $num = count($numbers);
        for ($i = 0; $i < $num; $i++) {
            for ($j = 0; $j < $num - $i - 1; $j++) {
                $this->swap($numbers[$j], $numbers[$j + 1]);
            }

        }
        return $numbers;
    }

    /**打印数组
     * @param $nums
     */
    function printNums($nums)
    {
        foreach ($nums as $num) {
            printf("%s ", $num);
        }
    }
}

$bS = new bSortClass();
$nums = array(10,5,9,7,8,6,4,3,2,1,0);
$newNums = $bS->bSort($nums);
$bS->printNums($newNums);

运行结果如下:

D:\php-7.2.4\php.exe D:\workspace_php\test\test.php
0 1 2 3 4 5 6 7 8 9 10 
Process finished with exit code 0

顺便说一下,PHPstorm在配置了PHP的解释程序之后,可以在IDE界面运行PHP的脚本,这样不用专门去打开一些运行的窗口。