目录
10.5.1 排序算法简介
10.5.2 冒泡排序算法
10.5.3 系统学习python
10.5.1 排序算法简介
所谓排序,是指将数据集合中的元素按从小到大的顺序进行排列,或按从大到小的顺序进行排列。前者称为升序排序,后者称为降序排序。在数据结构与算法这门课程中,我们会学习到诸多与排序相关的算法,比如冒泡排序算法,选择排序算法,快速排序算法,堆排序算法等。在本节教程中,我们来掌握非常经典的冒泡排序算法。
10.5.2 冒泡排序算法
冒泡排序算法的原理很简单,相邻元素两两间进行比较,按照升序或降序的关系互换位置。比如在升序排序中,将大的气泡放在后面,小的放在前面。n个元素两两之间进行比较,只需比较n-1次,即可找出最值。找出最值后,最值自动冒泡到区间的尾部,然后再进行下一趟的比较。下图所示为将降序排列的[3,2,1]列表使用冒泡排序排成升序:
根据以上原理,我们现在使用Python语言来实现冒泡排序算法:
Python
"""
@author: 薯条老师
@desc: 实现冒泡排序算法
"""
numbers = [3, 2, 1]
n = len(numbers)
# n个元素一共需要比较n-1趟
for outer_index in range(n-1):
# outer_index用来表示已经冒泡到尾部的气泡
# n个元素需比较n-1次才能找出最大或最小的值,所以是n-1
# 下一趟需在上一趟的基础上再两两间进行比较,所以得再减去outer_index
for inner_index in range(n-1-outer_index):
if numbers[inner_index] > numbers[inner_index+1]:
# 如果当前气泡大于后面的气泡,就互换位置
numbers[inner_index], numbers[inner_index+1] = \
numbers[inner_index+1], numbers[inner_index]
# 执行print来输出升序排序后的列表
print(numbers)
10.5.3 系统学习python
薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。