冒泡排序(bubble_sort)——Python实现
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] = temp
16 j = j - 1
17 else:
18 j = j - 1
19 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实现的更多相关文章
- 算法:冒泡排序(python版)
1.将n个元素从大到小排序后,选择第k个大的元素 #!/usr/bin/env python #coding -*- utf:8 -*- #冒泡排序选第k个元素 import random impor ...
- 排序算法之冒泡排序的python实现
冒泡排序算法的工作原理如下: 1. 比较相邻的元素.如果第一个比第二个大(升序),就交换他们两个. 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.这步做完后,最后的元素会是最大 ...
- 冒泡排序(Python实现)
目录 1. while版本--冒泡排序 2. for版本--冒泡排序 3. 测试用例 4. 算法时间复杂度分析 1. while版本--冒泡排序 def bubble_sort_while(a_lis ...
- 冒泡排序之python
冒泡排序(Bubble sort) 两两比较相邻记录的关键字,如果反序则交换,直到没有反序记录为止. 1.算法描述: 比较相邻的元素.如果第一个比第二个大,就交换它们两个: 对每一对相邻元素作同样的工 ...
- 冒泡排序Bubble_Sort
基本原理:对于冒泡排序来说,基本思想是从第一个元素开始,数组中的数据依次和它后面相邻的数据进行比较,即1和2比较,2和3比较,a和a+1比较,直到倒数第二位和倒数第一位的比较,如果顺序不对就进行交换, ...
- 冒泡排序算法-python
冒泡排序:每两个相互比较,总是选出大的相互交换,直至最后选出该列表中最大的数字 def bubbleSort(myList): for i in range(len(myList)-1):#一共进行几 ...
- 冒泡排序(python版)
实现源码 def bubble(array): flag = len(array)- : iter = for i in range(flag): ]: array[i], array[i+]= ar ...
- 冒泡排序的python代码实现
li = [33, 2, 10, 1,564,880,8,99,51,3]# for i in range(len(li) - 1):# current = li[i]# next_v ...
- 冒泡排序算法-Python实现
#-*- coding: UTF-8 -*- import numpy as np def BubbleSort(a): for i in xrange(0, a.size): for j in xr ...
- 基于python的七种经典排序算法
参考书目:<大话数据结构> 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. ...
随机推荐
- 【NX二次开发】Block UI 整形
属性说明 常规 类型 描述 BlockID String 控件ID Enable Logical 是否可操作 Group Logical ...
- 【NX二次开发】Block UI 指定位置
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- .NET平台系列30:.NET Core/.NET 学习资源汇总
系列目录 [已更新最新开发文章,点击查看详细] .NET Core/.NET技术虽然吸取了.NET Framework 中的精华,但是也扩展了一些新功能,尤其是跨平台的 ASP.NET Cor ...
- 从零开始学架构(三)UML建模
文章大纲 1. 文章介绍 2. UML概述 3. 静态模型 4. 动态模型 5. UML建模的一般过程 一.文章介绍 1.1为什么学习UML (1)UML是一种软件架构的模型表现方法,用于项 ...
- 撸了几天的sofa-tracer之后,我悟了!
什么是分布式链路跟踪 简而言之,在分布式系统下,用于跟踪链路而衍生出的一项技术. 应用场景如下: 应用A,B,C,D,E 以一个层级关系依赖, 当用户向 应用A 发起请求,但是返回了个异常,为了排查这 ...
- 动态路由及RIP协议
动态路由及 RIP协议 目录 一.动态路由协议 1.1.定义 1.2.特点 1.3.动态路由协议概述 1.4.度量值 1.5.收敛 1.6.静态路由和动态路由的比较 二.动态路由协议的分类 2.1.距 ...
- vue环境搭建以及使用vue-cli创建项目
我要跑vue项目,所以我要搞vue. 1.环境搭建 进入node官网下载对应版本的node,一步步安装即可. 安装会自动配置路径和npm包管理环境,通过node -v进行验证 2.安装vue-cli脚 ...
- (先导)Git Api对接:获取private_token的两种方式
" Git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.在公司一般用于代码管理:开发用例管理平台时我们选择使用git来管理用例,期间使用了很多git ap ...
- Akamai CDN刷新(通过Akamai cli 自动刷新)
1.刷新类型选择 根据官方介绍,可使用多种途径和方式来完成快速刷新 按照简便快捷高效的要求,暂时选择Akamai cli + url 来完成刷新. 2.二进制文件下载地址 文件下载地址:https:/ ...
- 关于Android Studio Emulator常见使用问题
Q:模拟器无法初始化声音相关设备 Emulator: dsound: Could not initialize DirectSoundCapture Emulator: dsound: Reason: ...