大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Python冒泡排序注意要点实例详解
我们提供的服务有:网站制作、网站设计、微信公众号开发、网站优化、网站认证、罗源ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的罗源网站制作公司
文给大家介绍了python冒泡排序知识,涉及到冒泡排序主要的细节问题,本文通过实例代码给大家讲解,介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
冒泡排序注意三点:
1. 第一层循环可不用循环所有元素。
2.两层循环变量与第一层的循环变量相关联。
3.第二层循环,最终必须循环集合内所有元素。
示例代码一:
1.第一层循环,只循环n-1个元素。
2.当第一层循环变量为n-1时,第二层循环所有元素。
s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
# bubble_sort
for i in range(0, len(s) - 1):
for j in range(i + 1, 0, -1):
if s[j] s[j - 1]:
s[j], s[j - 1] = s[j - 1], s[j]
for m in range(0, len(s)):
print(s[m])
示例代码二:
1.第一层循环所有元素。
2.第二层也循环所有元素。
s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
for i in range(0, len(s)):
for j in range(i, 0, -1):
if s[j] s[j - 1]:
s[j], s[j - 1] = s[j - 1], s[j]
for m in range(0, len(s)):
print(s[m])
以上所述是小编给大家介绍的python冒泡排序算法注意要点,希望对大家有所帮助
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already in place
for j in range(0, n-i-1):
if arr[j] arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i])
python冒泡排序简单实现方法
这篇文章主要介绍了python冒泡排序简单实现方法,实例分析了Python冒泡排序的简单实现技巧,具有一定参考借鉴价值。
分享给大家供大家参考。具体实现方法如下:
#!/usr/bin/pythonimportrandomdefbubble_sort(data): length=len(data) foriinrange(len(data)-1): forjinrange(len(data)-1): if(data[j] data[j+1]): tmp=data[j] data[j]=data[j+1] data[j+1]=tmpr=random.Random()data=[]forninrange(0,20): data.append(r.randint(1,300))printdata,len(data)bubble_sort(data)printdata
运行结果如下:
[115, 14, 246, 125, 94, 78, 275, 163, 64, 72, 245, 1, 97, 53, 86, 270, 137, 69, 74, 182] 20
[275, 270, 246, 245, 182, 163, 137, 125, 115, 97, 94, 86, 78, 74, 72, 69, 64, 53, 14, 1]
希望本文所述对大家的Python程序设计有所帮助。
通过学习排序算法,发现冒泡排序和选择排序在算法实现上,十分的近似,下面进行必要的一些讲解:
让数组当中相邻的两个数进行比较, 数组当中比较小的数值向下沉,数值比较大的向上浮!外层for循环控制循环次数,内层for循环控制相邻的两个元素进行比较。
将一个序列分为两部分, 前面是有序序列,后面是无序序列,不断的将后面的无序序列中的最小值添加到前面的有序序列中,直到后面的无序序列中没有值,开始的时候将第一个值作为有序序列。
由于冒泡排序中元素需要两两比较,所以要 遍历 所有元素, 冒牌排序算法,非常适用于寻找列表中最大值或者,最小值 。
在选择排序中,我们也需要一轮轮的选出剩余的无需元素中的最小值,所以也要一次次的遍历无序列表, 非常契合的使用冒泡的思想去选出最小值 。
【结论】:看这两个算法其实思维不同,但是实现的编码过程十分一致。如果看程序看蒙了,其实也不要紧,思维上能明白两者的区别就行...
python代码和运行结果如下:
可见成功将乱序数组A按升序输出
附源码链接:冒泡排序