冒泡排序(bubble_sort)——Python实现,,#冒泡排序#作用:对
冒泡排序(bubble_sort)——Python实现,,#冒泡排序#作用:对
#冒泡排序#作用:对给出的n个顺序不定的数进行排序#输入:任意数组A#输出:按顺序排列的数组A#冒泡排序过程#第一趟:以第一个数为基准,从最后一位数开始,依次与它比较,#若大于它,则交换,若小于它,则继续判断前一个数#完成一趟后,这个基准数(即第一个数)是所有数里最大的#第二趟:以第二个数为基准,从最后一位数开始,依次与它比较,#若大于它,则交换,若小于它,则继续判断前一个数#完成一趟后,这个基准数(即第二个数)是除了第一个数之外最大的#以此类推,直到以最后一个数位基准时,得到倒序的数组1 # 在此修改初始数据 2 A = [12,56,92,-1,5,110,92,999,-39,21,76,33,56] 3 4 print(‘您的初始数据为:‘) 5 print(A);print(‘\n‘*1) # print(‘\n‘*1) 意思为空一行,仅起使输出美观的作用 6 n = len(A) # 用n获取数组长度 7 i = 0 # 外循环时数组的下标 8 j = n-1 # 内循环时数组的下标 9 10 while i <= n-1:11 while j != i:12 if A[j] > A[i]:13 temp = A[i]14 A[i] = A[j]15 A[j] = temp16 j = j - 117 else:18 j = j - 119 j = n -1 # 重置j,使得下次循环能j能从最后一个数开始20 i = i + 1 # 完成一次循环后,第i个数已被确定,是当前剩余的数中最大的21 print(A)22 23 print(‘\n‘*1) 24 print(‘冒泡排序的结果:‘) # 输出的数据是逆向排序的25 print(A)26 27 A.reverse() # python自带的函数,使逆序28 print(‘取倒序后数据为:‘) 29 print(A)
运行结果:
您的初始数据为:[12, 56, 92, -1, 5, 110, 92, 999, -39, 21, 76, 33, 56]冒泡排序的结果:[999, 110, 92, 92, 76, 56, 56, 33, 21, 12, 5, -1, -39]取倒序后数据为:[-39, -1, 5, 12, 21, 33, 56, 56, 76, 92, 92, 110, 999]
该算法具体实现过程中数组A的变化情况:
其中,下划线___表示的是在每一趟(每一次外循环)确定下来的数
1 [999, 56, 92, -1, 5, 110, 92, 76, -39, 21, 56, 33, 12] 2 [999, 110, 92, -1, 5, 92, 76, 56, -39, 21, 56, 33, 12] 3 [999, 110, 92, -1, 5, 92, 76, 56, -39, 21, 56, 33, 12] 4 [999, 110, 92, 92, 5, 76, 56, 56, -39, 21, 33, 12, -1] 5 [999, 110, 92, 92, 76, 56, 56, 33, -39, 21, 12, 5, -1] 6 [999, 110, 92, 92, 76, 56, 56, 33, -39, 21, 12, 5, -1] 7 [999, 110, 92, 92, 76, 56, 56, 33, -39, 21, 12, 5, -1] 8 [999, 110, 92, 92, 76, 56, 56, 33, -39, 21, 12, 5, -1] 9 [999, 110, 92, 92, 76, 56, 56, 33, 21, 12, 5, -1, -39]10 [999, 110, 92, 92, 76, 56, 56, 33, 21, 12, 5, -1, -39]11 [999, 110, 92, 92, 76, 56, 56, 33, 21, 12, 5, -1, -39]12 [999, 110, 92, 92, 76, 56, 56, 33, 21, 12, 5, -1, -39]13 [999, 110, 92, 92, 76, 56, 56, 33, 21, 12, 5, -1, -39]
简而言之,冒泡排序法就是每次找出剩余的数中最大的一个,并按顺序存储下来。
冒泡排序(bubble_sort)——Python实现
相关内容
- Python3中的open函数,,open(file,
- Python 字典 len()方法,,描述Python 字
- 谈谈对Python的感想,,写在前面 我用Py
- python 将IP地址转换成打包后的32位格式,,python 2.7
- 软件测试工程师常见的17道Python面试题【多测师_王sir】
- Ubuntu系统下简单安装python解释器,,1、首先下载pyth
- python+redis简单实现发红包程序,,redis是什么?
- python找出数组中第二大的数,,#!usr/bin/
- Python中print函数中中逗号和加号的区别,,先看看print中
- Python列表:元素的修改、添加、删除和排序,,本文参考
评论关闭