昨天用c写了简单的冒泡排序算法之后,正好最近在学 python,也想试试用python实现一下。

总体感觉,对于这种简答的小程序,python 确实充分体现了他简洁,易懂的特点。写起来特别流畅,舒服。但是写完之后总感觉哪里有点别扭,就是可能用管了c,对于那种很强的逻辑顺序有着天然的倾向。

先设计好排序的函数,然后在主函数里调用,模块间的数据传递啊,地址传递啊,让我们不仅理解了程序,也对他底层的操作有了了解。比如一个交换数据函数,传递的必须是地址,只有这样才能正确的交换。不相信的客官看这里:

我把函数换成了仅仅是数据的交换,不交换地址,运行结果。。。。并没有什么卵用

这也就是为什么c是底层语言。学好c能让我们对计算机有很好的理解。

但是在python里面,特别方便,交换a,b的值,只需a ,b = b,a。是的 ,你没有看错,就是这样。简单虽然简单,但是我们并不知道他 的内部是怎么操作的。

还有一点就是主函数,可能是我刚开始学python,还没有摸透他的语法规则,之前写的程序都是没有主函数,让我很是不爽,主函数怎么能少了呢!!!!!

今天查了一下,才算明白 :

Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数。

所以 python的执行不依赖于main函数,而且python从程序没有缩进的地方开始执行。

两种截然不同的编程风格,真是让人又爱又恨啊。

学习c是因为专业的需要。学习python是兴趣使然。

下面把两种代码都贴出来,便于读者比较分析。

python:

#2017.9.10
#冒泡排序算法 import time start = time.clock() #开始的时刻 def bubble(num):
length = len(num)
for i in range(length):
for j in range(length-i-1):
if num[j]>num[j+1]:
num[j],num[j+1] = num[j+1],num[j] #python的数据交换格式,非常方便简洁,a,b = b,a 就可以了
return num nums = [2,70,49,35,25,56,39,40,100,58,37]
print "原序列为:%r"%nums
print "冒泡排序后:%r"%bubble(nums) end = time.clock() #结束时刻
print "程序运行时间为:%.5f s"%(end-start)

运行结果

c的程序可以看我的上一篇博客 。

冒泡排序算法的 python 实现与 C 的比较的更多相关文章

  1. python开发学习-day05(正则深入、冒泡排序算法、自定义模块、常用标准模块)

    s12-20160130-day05 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  2. python算法与数据结构-冒泡排序算法(32)

    一.冒泡排序介绍 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直到没有再需要 ...

  3. 冒泡排序算法(C#、Java、Python、JavaScript、C、C++实现)

    一.介绍 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从Z到A)错误就把他们交换过来. 走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排 ...

  4. python --- 冒泡排序算法

    别想太多了,这个冒泡排序就是我们脑海中想到的那个冒泡,就好像是气泡一样,较小的元素比较轻,从而要往上浮出来, 冒泡排序算法. 要对‘气泡’序列处理若干遍.所谓一遍处理,就是自底向上检查一遍这个序列,并 ...

  5. 基本排序算法的Python实现

    本篇主要实现九(八)大排序算法,分别是冒泡排序,插入排序,选择排序,希尔排序,归并排序,快速排序,堆排序,计数排序.希望大家回顾知识的时候也能从我的这篇文章得到帮助. 为了防止误导读者,本文所有概念性 ...

  6. 八大排序算法的 Python 实现

    转载: 八大排序算法的 Python 实现 本文用Python实现了插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个 ...

  7. 常用排序算法的python实现和性能分析

    常用排序算法的python实现和性能分析 一年一度的换工作高峰又到了,HR大概每天都塞几份简历过来,基本上一天安排两个面试的话,当天就只能加班干活了.趁着面试别人的机会,自己也把一些基础算法和一些面试 ...

  8. 一些排序算法的Python实现

    ''' Created on 2016/12/16 Created by freeol.cn 一些排序算法的Python实现 @author: 拽拽绅士 ''' '''值交换''' def swap( ...

  9. C#冒泡排序算法

    用了两种形式的数据,一个是泛型List,一个是数据int[].记录一下,作为自己学习过程中的笔记. using System; using System.Collections.Generic; us ...

随机推荐

  1. Java、C#双语版HttpHelper类(解决网页抓取乱码问题)

    在做一些需要抓取网页的项目时,经常性的遇到乱码问题.最省事的做法是去需要抓取的网站看看具体是什么编码,然后采用正确的编码进行解码就OK了,不过总是一个个页面亲自去判断也不是个事儿,尤其是你需要大量抓取 ...

  2. 解决计算机改名无法连接TFS的问题

    闲着没事改了下计算机名字,结果造成TFS无法连接. 报错讯息如下: ---------------------------Microsoft Visual Studio---------------- ...

  3. splash渲染网页

    #coding=utf8 import requests,time,random import threadpool render_html = 'http://192.168.30.128:8050 ...

  4. 8 -- 深入使用Spring -- 1...4 重写占位符配置器

    8.1.5 重写占位符配置器 (PropertyOverrideConfigurer) PropertyOverrideConfigurer是Spring提供的另一个容器后处理器.PropertyOv ...

  5. Maven update project...后jdk变成1.5,update project后jdk版本改变

    Maven update project...后jdk变成1.5,update project后jdk版本改变 ============================== 蕃薯耀 2018年3月14 ...

  6. BootStrap Table显示行号,并且分页后依然递增

    bootStrap table 此处使用的是V1.9.0.在网上百度的方法是: { title: '序号', field: '', formatter: function (value, row, i ...

  7. oracle 排序字段自增长

    <insert id="insertGoodsDescription" parameterClass="goodsDescription" > &l ...

  8. 一个汉字转拼音的php类

    代码来自网上,可用 <?php function Pinyin($_String, $_Code='gb2312') { $_DataKey = "a|ai|an|ang|ao|ba| ...

  9. JSPatch实现原理详解

    本文转载至 http://blog.cnbang.net/tech/2808/ JSPatch以小巧的体积做到了让JS调用/替换任意OC方法,让iOS APP具备热更新的能力,在实现 JSPatch ...

  10. 《转载》Fiddler 抓包工具总结

    阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statistics 请求的性能数据分析 3). Inspectors 查看数据内容 4). AutoResponder 允许拦截制 ...