用python实现冒泡排序算法,python冒泡排序法代码
冒泡排序是一种简单的排序算法,也是一种稳定的排序算法。其实现原理是反复扫描待排序的序列,比较每对相邻元素,当该对元素的顺序不正确时进行交换。重复这个过程,直到没有两个相邻的元素可以交换,表明排序完成。
00-1010 1、冒泡排序2、需求变化及算法介绍3、实际应用1、星历介绍2、代码实现及描述4、总结今天我给大家讲解‘冒泡排序’
目录
当给定一个数组arr时,使用冒泡排序按从小到大的顺序排列。
具体原理网上已经烂了,这里就不抄了。不懂的可以借鉴Python冒泡排序。
定义:冒泡排序也是一种简单直观的排序算法。它反复访问要排序的序列,一次比较两个元素,如果它们的顺序不对,就切换它们。访问序列的工作一直重复到不需要交换为止,也就是说序列已经排序了。这种算法的名字来源于这样一个事实,即较小的元素将通过交换慢慢地“浮动”到序列的顶部。
有人会说这不是一件很简单的事情,只是
def气泡(arr):
对于范围内的I(len(arr)):
对于范围(0,len(arr)-i-1):中的j
if arr[j] arr[j 1]:
数组[j],数组[j 1]=数组[j 1],数组[j]
arr=[2,5,3,4,1]
气泡(排列)
对于范围内的I(len(arr)):
打印( %d % arr[i])
该输出的结果是
一二三四五
1、冒泡排序
然后,假设有一个数组,里面有几个整数,需要按这个过程排序:使用冒泡排序法,当前的比后者小,所以前者放在序列的末尾;如果后者小于前者,那么后者需要与前者交换,由于前者小于后者,所以前者将被放在序列的末尾,以此类推。当数组中最大的数字与最小的数字进行比较时,默认情况下,最大的数字将放在序列的末尾。
这里有一个例子:
假设arr=[2,5,3,4,1],按照上面的方法对arr进行排序。第一次判断2和5,发现2小于5。将2放在序列的末尾,形成数组[5,3,4,1,2,3]-[5,1]
2、需求更改和算法介绍
这种算法是为Erphius控制枪支而设计的。Erphius是英雄联盟的特殊ADC。相信玩过《英雄联盟》这款游戏的人都很熟悉,更别说2021年EDG夺冠了,冠军的皮肤是EDG厄普修斯。
3、实际应用
以弗所有五支枪,分别是绿、红、紫、蓝、白。每把枪都有不同的功能,但是玩家总是可以使用两把枪,而且两把枪可以随意切换。每支枪有50发子弹。用了50就可以换下一把枪了。
最优顺序,也是流行的顺序是:白、绿、紫、蓝、红、白、蓝紫、蓝红。其他兼容性比以上组合差(大众认为)。如果契合度高的枪相邻,战斗力就强。因此,该算法的要求是将与相邻位置匹配度高的枪支进行排序。
注意:5和1其实是相邻的位置。
1、厄斐琉斯简介
假设1代表白色,2代表绿色,3代表紫色,4代表蓝色,5代表红色。
#定义“冒泡排序”功能
def气泡(arr):
对于范围内的I(len(arr)):
对于范围(0,len(arr)-i-1):中的j
#判断你手中枪的重量是否小于第二件武器的重量。如果很小,就用它;如果它很大,使用另一种武器。
if arr[0] arr[1]:
Print (Swap ,arr[0],arr[1],和
使用",arr[1])
#5和1的逻辑判断
if arr[0] ==5 and arr[1] == 1:
temp = arr[0]
arr.append(temp)
arr.remove(arr[0])
break
arr[0],arr[1] = arr[1],arr[0]
#使用掉手中武器,并将其堆到末尾
temp=arr[0]
arr.append(temp)
arr.remove(arr[0])
print(arr)
if arr[0] < arr[1]and arr[0]!=1:
print(arr[0],"使用完成,排到最后")
temp = arr[0]
arr.append(temp)
arr.remove(arr[0])
print(arr)
#定义arr数组为最初efls默认枪械(每局初始都为此顺序)
arr = [2,5,3,4,1]
bubble(arr)
for i in range(len(arr)):
print("%d" % arr[i])
gun = {1:"白",2:"绿",3:"紫",4:"蓝",5:"红"}
print("此中每个数字代表武器的颜色为",gun)
cur_gun={2:"绿",5:"红",3:"紫",4:"蓝",1:"白"}
# 小的先使用,用掉后掉到排序的最末端,默认5小于1
# [5,3,4,1,2] [5,4,1,2,3] [5,1,2,3,4] [1,2,3,4,5]
运行结果如下:
2 使用完成,排到最后
[5, 3, 4, 1, 2]
将 5 3 调换位置,并使用 3
[5, 4, 1, 2, 3]
将 5 4 调换位置,并使用 4
[5, 1, 2, 3, 4]
将 5 1 调换位置,并使用 1
1
2
3
4
5
此中每个数字代表武器的颜色为 {1: '白', 2: '绿', 3: '紫', 4: '蓝', 5: '红'}
以上就为默认顺序变为最佳顺序的控枪思路
4、总结
以上就为控枪的主要内容,若需更改初始数组,只需更改arr中的枪械顺序即可。
目前不足就是枪械是由数字来代替的,大家如果能记住每个数字对应的颜色那么就可以。
记住初始顺序的运行结果就可以了哈哈~
本文纯属娱乐并巩固算法知识,切记游戏中不要退出来使用此程序!!
到此这篇关于Python超有趣实例通过冒泡排序来实现LOL厄斐琉斯控枪的文章就介绍到这了,更多相关Python冒泡排序内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。