1、冒泡排序

核心算法:

在数组x[n]中,从第一个数开始,拿x[i]和后面的数x[i+1]进行比较,如果x[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数据排在了最后面,之后继续循环排剩下的n-1个数,直到完成所有的排序,由于每次都是把最大的排到最后面,就好像冒泡一样,故取名冒泡排序。

def bubbleSort(x):

xLen = len(x)

for i in xrange(xLen-1):

for j in xrange(xLen -1-i):

if x[j] > x[j+1]:

t = x[j]

x[j] = x[j+1]

x[j+1] = t

return x

if __name__ == '__main__':

#冒泡排序演示

print bubbleSort([34,123,12,34,545])

时间复杂度计算:

时间复杂度计算:

当我们遍历第1遍时,比较了n-1次,把最大的数排在了x[n-1]的位置;

第2遍比较了n-2次,把第二大的数排在了x[n-2]的位置;

...

第n-1遍比较了1次,把倒数第二大的数排在了x[1]的位置。

这样,我们总共比较的次数是1+2+3+...+(n-1)= n(n-1)/2

在计算时间复杂度时,我们一般使用的大表示法,其时间复杂度,从小到大的排序是:

(1)

我们上面所求得的n(n-1)/2,其时间复杂度,最大的影响因子是n^2,故其时间复杂度是(n^2)

python冒泡排序算法时间复杂度为nlogn_Python版算法专题-1、冒泡排序相关推荐

  1. python二分查找时间复杂度_二分查找算法的时间复杂度计算(logN)

    二分查找算法的时间复杂度计算(logN) 马富天 2019-08-10 20:25:24 54 [摘要]二分查找算法是对顺序查找算法的优化,二分查找算法的前提是数列是一个有序数列,递增或者递减,本文就 ...

  2. 分布式自增ID算法---雪花算法 (snowflake,Java版)---算法001

    一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式.UUID.雪花算法. 方案一,通过中间件方式,可以是把数据库或者redis缓存作为媒介,从中间件获取ID.这种呢,优点是可以体现全局的递增 ...

  3. 算法-时间复杂度和空间复杂度

    2.9 算法时间复杂度 2.9.1 算法时间复杂度定义 在进行算法分析时 , 语句总的执行次数 T ( n )是关子问题规模n的函数,进而分析 T ( n )随 n 的变化情况并确定T(n)的数量级. ...

  4. 随机选择算法时间复杂度分析

    随机选择算法时间复杂度分析 首先提供算法的伪代码: 算法是递归算法 时间复杂度分析思路:计算每一次递归语句所消耗的时间,再求和. 为了分析需要,我们先定义如下的量: 定义状态j:数组长度在[(3/4) ...

  5. python算法与程序设计基础第二版-算法与程序设计基础(Python版) - 吴萍

    基本信息 书名:21世纪高等学校计算机基础实用规划教材:算法与程序设计基础(Python版) 定价:39.00元 作者:吴萍21世纪高 出版社:清华大学出版社 出版日期:2015_2_1 ISBN:9 ...

  6. python数据结构与算法分析_数据结构与算法(Python版)

    为什么研究数据结构与算法 本周带大家进入Python版数据结构与算法的学习.想必大家都听过"算法"一词,算法的学习对编程者来说是至关重要的.首先我们先了解一下为什么要研究数据结构与 ...

  7. 金融科技、算法交易、量化金融必读书:Python金融大数据分析第2版

    银行本质上是技术公司. --胡戈•班齐格 近来,Python无疑是金融业的重要策略性技术平台之一.到2018年底,这已经不再是个问题:全世界的金融机构现在都尽最大努力利用Python及其强大的数据分析 ...

  8. 基于python编码实现多智能体进化算法求解带硬时间窗约束的VRP问题(适配版)

    作者:Logintern09 发布时间:2022年10月23日16时 出处:CSDN博客 专栏:<智能优化算法> 书接上回:多智能体进化算法求解带硬时间窗约束的VRP问题(附完整pytho ...

  9. 排序算法-冒泡排序的时间复杂度分析

    冒泡排序算法是一种基于比较的排序算法,每次冒泡过程,都会有一个数据确定位置.经过n次冒泡后,就有n个数据确定了位置. 如图所示,对数组[4,5,6,3,2,1]进行冒泡排序.  起初,按照最原始的想法 ...

最新文章

  1. 出错页面webpar的t删除
  2. 详解数据中台构建核心产品Dataphin“ 规划”能力
  3. ObjectDataSourc用法之三(排序)
  4. XML在线转化为JSON
  5. linux time
  6. matlab验潮站,验潮站的作用是什么
  7. 黑马程序员_7k面试题交通管理系统
  8. 右键新建里面没有word和excel_Excel中为什么修改了新建工作簿的选项,新建以后还是没有生效...
  9. HttpServletResponse中sendError与setStatus的区别
  10. Linux 串口、usb转串口驱动分析(2-1) 【转】
  11. WTL for MFC Programmers, Part V - Advanced Dialog UI Classes
  12. php mysql 分页查询_PHP+MySQL分页查询实现
  13. 题解 【中学高级本-网络流24题】餐巾计划
  14. unity shader 热扭曲 (屏幕后处理)
  15. matlab 莫比乌斯带,教师数学论文,关于高等数学教学中运用多媒体手段相关参考文献资料-免费论文范文...
  16. 信息发布类网站后台界面设计一点思考(整体布局)
  17. gif图用photoshop快速抽帧,压缩,去底,修改时间
  18. 鼠标垫测试软件,百款鼠标垫测试(项目)
  19. 构件组装-总结与展望
  20. ios 倒数器_Clover旗下iOS应用Widgets全线更新:倒数器、新闻画报、全球天气

热门文章

  1. android流量监控步骤_Android流量网络监控设计(超级实用版).doc
  2. python动态执行代码_第6.6节 Python动态执行小结
  3. Linux 下安装 Android Studio
  4. 查看spark是否有僵尸进程,有的话,先杀掉。可以使用下面命令
  5. linux 批量删除
  6. docker 部署redis
  7. Lambda方法推导(method references)
  8. xml字符串转对象xml文件转对象
  9. Linux下禁止别人ping自己服务器的方法
  10. 【代码笔记】iOS-获得设备型号