欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python超有趣實例通過冒泡排序來實現(xiàn)LOL厄斐琉斯控槍

 更新時間:2022年05月19日 10:03:16   作者:天海一直在  
冒泡排序是一種簡單的排序算法,它也是一種穩(wěn)定排序算法。其實現(xiàn)原理是重復(fù)掃描待排序序列,并比較每一對相鄰的元素,當該對元素順序不正確時進行交換。一直重復(fù)這個過程,直到?jīng)]有任何兩個相鄰元素可以交換,就表明完成了排序

今天來給大家講解一下"冒泡排序"

1、冒泡排序

當給定一個數(shù)組arr,使用冒泡排序?qū)⑵浒磸男〉酱蟮捻樞蚺帕小?/p>

具體原理網(wǎng)上已經(jīng)爛大街了,這里我就不去copy了,不懂的小伙伴可以借鑒Python 冒泡排序

定義:冒泡排序(Bubble Sort)也是一種簡單直觀的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復(fù)地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢"浮"到數(shù)列的頂端。

有人會說這不是很簡單的事情嗎,只需要

def bubble(arr):
    for i in range(len(arr)):
        for j in range(0,len(arr)-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [2,5,3,4,1]
bubble(arr)
for i in range(len(arr)):
    print("%d" % arr[i])

這樣做輸出的結(jié)果就是

12345

2、需求更改和算法介紹

那么,假設(shè)有一個數(shù)組,數(shù)組內(nèi)有若干位整數(shù),需要以這種過程去排序:使用冒泡排序的方法,當前者比后者小那么就將前者放到序列的末尾,如果后者小于前者,那么需要將后者與前者調(diào)換位置,又由于前者小于后者,那么前者會被放到序列末尾,依次類推,當數(shù)組內(nèi)的最大數(shù)與最小數(shù)進行比較時,默認將大的放到序列末尾

下面舉個例子:

假設(shè) arr=[2,5,3,4,1],按照上述方法進行排序arr第一次判斷2和5,發(fā)現(xiàn)2比5小,將2放到序列的末尾使數(shù)組變?yōu)閇5,3,4,1,2] ,依次類推數(shù)組發(fā)生變化[5,4,1,2,3]-> [5,1,2,3,4]由于1和5的特殊性,將最大的數(shù)放到序列末尾變?yōu)閇1,2,3,4,5],這樣排序就排好了

3、實際應(yīng)用

本算法專厄斐琉斯控槍而生,厄斐琉斯為英雄聯(lián)盟的一個特殊ADC,相信玩過英雄聯(lián)盟這款游戲的大家都很熟悉,更何況2021年EDG奪冠,冠軍皮膚為EDG厄斐琉斯。

1、厄斐琉斯簡介

厄斐琉斯有五把槍,分別為綠紅紫藍白,其每個槍的功能都不一樣,但玩家一直能保持著使用兩把槍的狀態(tài),且兩把槍之間可以隨意切換使用,每把槍擁有50發(fā)子彈,用完50發(fā)后,就可以切換到下一把槍,

最優(yōu)的順序,也是大眾的順序為:白綠紫藍紅,因為白和綠契合度很高,紅和白契合度很高,藍和紫契合度很高,藍和紅契合度很高,其他的兼容性比上述組合都要差些(大眾認為)。使契合度高的槍械相鄰,就會有著很強的戰(zhàn)斗力。所以此算法的需求就是將契合度高的槍械排序到相鄰位置

注意:5和1其實也是相鄰位置

2、代碼實現(xiàn)及說明

假設(shè)1代表白色,2代表綠色,3代表紫色,4代表藍色,5代表紅色

#定義"冒泡排序”函數(shù)
def bubble(arr):
    for i in range(len(arr)):
        for j in range(0,len(arr)-i-1):
            #判斷手中槍械權(quán)重是否小于第二把武器,如果小就將其使用掉,如果大就使用另外一把武器
            if arr[0] > arr[1]:
                print("將",arr[0],arr[1],"調(diào)換位置,并使用",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數(shù)組為最初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("此中每個數(shù)字代表武器的顏色為",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]

運行結(jié)果如下:

2 使用完成,排到最后
[5, 3, 4, 1, 2]
將 5 3 調(diào)換位置,并使用 3
[5, 4, 1, 2, 3]
將 5 4 調(diào)換位置,并使用 4
[5, 1, 2, 3, 4]
將 5 1 調(diào)換位置,并使用 1
1
2
3
4
5
此中每個數(shù)字代表武器的顏色為 {1: '白', 2: '綠', 3: '紫', 4: '藍', 5: '紅'}

以上就為默認順序變?yōu)樽罴秧樞虻目貥屗悸?/p>

4、總結(jié)

以上就為控槍的主要內(nèi)容,若需更改初始數(shù)組,只需更改arr中的槍械順序即可。

目前不足就是槍械是由數(shù)字來代替的,大家如果能記住每個數(shù)字對應(yīng)的顏色那么就可以。

記住初始順序的運行結(jié)果就可以了哈哈~

本文純屬娛樂并鞏固算法知識,切記游戲中不要退出來使用此程序!!

到此這篇關(guān)于Python超有趣實例通過冒泡排序來實現(xiàn)LOL厄斐琉斯控槍的文章就介紹到這了,更多相關(guān)Python冒泡排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Flask 入門系列 Cookie與session的介紹

    Flask 入門系列 Cookie與session的介紹

    這篇文章主要給大家分享的是 Flask 入門系列 Cookie與session的介紹,下面文字圍繞 Cookie與session的相關(guān)資料展開詳情,需要的朋友可以參考一下,希望對大家有所幫助
    2021-11-11
  • 淺談python函數(shù)調(diào)用返回兩個或多個變量的方法

    淺談python函數(shù)調(diào)用返回兩個或多個變量的方法

    今天小編就為大家分享一篇淺談python函數(shù)調(diào)用返回兩個或多個變量的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 解決python3 urllib 鏈接中有中文的問題

    解決python3 urllib 鏈接中有中文的問題

    今天小編就為大家分享一篇解決python3 urllib 鏈接中有中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python sorted函數(shù)原理解析及練習(xí)

    python sorted函數(shù)原理解析及練習(xí)

    這篇文章主要介紹了python sorted函數(shù)原理解析及練習(xí),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Python?時間操作datetime詳情

    Python?時間操作datetime詳情

    這篇文章主要介紹了?Python?時間操作datetime,datetime?模塊提供處理時間和日期的多種類,簡單方便,下面文章將詳細介紹其內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Python XML RPC服務(wù)器端和客戶端實例

    Python XML RPC服務(wù)器端和客戶端實例

    這篇文章主要介紹了Python XML RPC服務(wù)器端和客戶端實例,本文給出了實現(xiàn)代碼以及運行效果,需要的朋友可以參考下
    2014-11-11
  • python獲取url的返回信息方法

    python獲取url的返回信息方法

    今天小編就為大家分享一篇python獲取url的返回信息方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python中np.multiply()、np.dot()和星號(*)三種乘法運算的區(qū)別詳解

    python中np.multiply()、np.dot()和星號(*)三種乘法運算的區(qū)別詳解

    這篇文章主要介紹了python中np.multiply()、np.dot()和星號(*)三種乘法運算的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 淺談圖像處理中掩膜(mask)的意義

    淺談圖像處理中掩膜(mask)的意義

    今天小編就為大家分享一篇淺談圖像處理中掩膜(mask)的意義,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python使用wget實現(xiàn)下載網(wǎng)絡(luò)文件功能示例

    Python使用wget實現(xiàn)下載網(wǎng)絡(luò)文件功能示例

    這篇文章主要介紹了Python使用wget實現(xiàn)下載網(wǎng)絡(luò)文件功能,簡單介紹了wget安裝以及Python使用wget下載tar格式網(wǎng)絡(luò)文件并進行解壓處理相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05

最新評論