Python -- 冒泡排序算法
2016-05-06 10:29
676 查看
冒泡排序的定义
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
冒泡排序的时间复杂度
冒泡排序算法的时间复杂度为O(n*n)。
冒泡排序的排序过程
①比较相邻的元素,如果第一个比第二个大则将两者交换。
②对每一对相邻元素作同样的工作,顺序为从后向前一对一对进行比较。
③针对所有的元素重复以上的步骤。
④持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
# -*- coding:utf-8 -*-
def bubble(array):
print("排序前数组:", array)
print("待排序数组长度:%d" % len(array))
sort_time = 0
for i in range(len(array)-1):
exchange = False
sort_time +=1
for j in range(len(array)-1, i, -1):
if array[j] < array[j-1]:
array[j], array[j-1] = array[j-1], array[j]
exchange = True
print("第%d次排序结果:" % sort_time, array)
if not exchange:
break
print("排序后数组:", array)
print("排序次数:%d" % sort_time)
if __name__ == "__main__":
score = [27, 33, 28, 4, 2, 26, 13, 35, 8, 14]
bubble(score)
结果:
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
冒泡排序的时间复杂度
冒泡排序算法的时间复杂度为O(n*n)。
冒泡排序的排序过程
①比较相邻的元素,如果第一个比第二个大则将两者交换。
②对每一对相邻元素作同样的工作,顺序为从后向前一对一对进行比较。
③针对所有的元素重复以上的步骤。
④持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
# -*- coding:utf-8 -*-
def bubble(array):
print("排序前数组:", array)
print("待排序数组长度:%d" % len(array))
sort_time = 0
for i in range(len(array)-1):
exchange = False
sort_time +=1
for j in range(len(array)-1, i, -1):
if array[j] < array[j-1]:
array[j], array[j-1] = array[j-1], array[j]
exchange = True
print("第%d次排序结果:" % sort_time, array)
if not exchange:
break
print("排序后数组:", array)
print("排序次数:%d" % sort_time)
if __name__ == "__main__":
score = [27, 33, 28, 4, 2, 26, 13, 35, 8, 14]
bubble(score)
结果:
相关文章推荐
- Python yield 使用浅析
- Python 主要模块和常用方法简览
- python 安装 mysql-python遇到的问题
- python 内建函数basestring笔记
- Python使用UUID库生成唯一ID
- 杂记_一些关于python代码风格汇总_不断更新
- hash加密 python
- 基于python sqlite3将KDD-99数据集插入数据库中
- Python selenium爬虫
- 使用python将KDD-99中的文本替换为数值形式
- 基于python一个分发小脚本
- python str和repr的区别
- Python标准库:内置函数eval(expression, globals=None, locals=None)
- python日志记录-logging模块
- python切片详解
- Python_爬虫
- Python 装饰器
- python中matplotlib绘图中文显示问题
- Python 迭代器工具包【推荐】
- Python 类与元类的深度挖掘 I【经验】