安满 发布的文章

冒泡排序的小程序,用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的脚本,这样不用专门去打开一些运行的窗口。

从运行部门调到信息部门之后参加过一些会议,各类会议的主题主要是围绕核电、信息化、数字核电、大数据、数据标准召开的,这篇日志就一并汇总一下,做个记号。

第二十届太平洋地区核能大会

地点是在北京,国家会议中心,时间是2016年12月。受邀参加本次会议,主要是由于公司统一挑选了一批写的比较好的论文投到了本次会议,我的论文是评工程师写的,题目是《方家山辅助变压器低压侧三相电压不平衡分析》,外国专家在初审的时候评价比较高。在专题会议小组还有上台演讲,英文版的论文收录进了spinger。综合起来,这次会议是我参加过的最高规格的会议。

第四届中国核电信息技术高峰论坛

2016年4月在上海,在这个会议上对日志易这个公司印象比较深。本来做互联网搜索引擎的,转向做服务器所产生的日志信息查询,这也是刷新了我对搜索引擎技术的新的认知。

云栖大会

2016年10月,在杭州,云栖大会,去的目的就是听hadoop大数据技术专场。

数字核电技术专题交流会议

2017年2月,在浙江海盐,召开中国核电数字核电技术专题会议,参会单位主要是中国核电本部以及中国核电下属核电子公司、研究所以及一些受邀的服务商。本次会议围绕中国核电数字核电建设做了一些规划。

2017大数据标准化论坛

在北京,2017年3月,会议的全称是:2017大数据标准化论坛暨全国信标委大数据标准工作组第四次全会,参加这种由国家部委主办的会议是一次比较好的锻炼机会。主要是想听一下国家层面关于大数据标准的工作进展,顺带发现了一个国家标准委某网站漏洞,并提醒了对方的技术人员进行修补。

智慧核电与数字化移交技术交流会

深圳,2017年3月,核电项目数字化移交是本次会议讨论的主题,核电厂数字化移交仍然存在比较大的分析,这里面主要是利益的较量。

2017(第十一届)发电企业信息技术与应用研讨会

2017年4月,无锡,这个会议是一个与火电兄弟单位交流的平台,在这个会议上,发现参会的各位对核电真的了解的十分少,以及核电的信息化的确是相对走在前面的。


总结

参加各种会议,多多交流,的确是不错的体验,赶上核电大数据项目的热点,要了解技术的发展前沿以及应用建设的进展,靠自己关门摸索是很难的,最快的方式就是行业内部以及行业关联方进行面对面的交流,因此这两年我也是成长了许多。

在阿里云购买的云虚拟主机马上要到期了,在续费与否上经过权衡,决定换ECS,这样可以像拥有一台完整的服务器一样,使用起来更加灵活。这次购买的是3年期限的,因此接下来的三年内就可以不用考虑更换服务器了,毕竟,一个小小的个人博客必然不会产生太大的访问量,何况,作者也并不帅。

更换了博客程序

在上一版的博客中,使用的程序是自己开发的,用起来还不错,相当于是自己专门定制的,想到什么样的功能就写写PHP去实现。不过呢,有比较长的时间没有去继续更新代码,因此,自己当初写代码的时候的一些想法也记不起来了,因此想了想,既然换了服务器,数据也没有迁移,程序干脆也更换得了。

作为全新的第一篇日志,就写到这里。最后感谢Typecho团队开发了这个博客程序,使用起来很不错。