最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

1、冒泡排序

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

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

定義:冒泡排序(Bubble Sort)也是一種簡單直觀的排序算法。它重復地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復地進行直到?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、實際應用

本算法專厄斐琉斯控槍而生,厄斐琉斯為英雄聯(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ù)字對應的顏色那么就可以。

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

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

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

相關(guān)文章

  • python基礎(chǔ)教程之csv格式文件的寫入與讀取

    python基礎(chǔ)教程之csv格式文件的寫入與讀取

    逗號分隔值(Comma-Separated Values,CSV,也稱為字符分隔值,分隔字符也可以不是逗號),新這篇文章主要給大家介紹了關(guān)于python基礎(chǔ)教程之csv格式文件的寫入與讀取的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • python實現(xiàn)控制臺輸出顏色

    python實現(xiàn)控制臺輸出顏色

    這篇文章主要為大家詳細介紹了python實現(xiàn)控制臺輸出顏色,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • python解壓TAR文件至指定文件夾的實例

    python解壓TAR文件至指定文件夾的實例

    今天小編就為大家分享一篇python解壓TAR文件至指定文件夾的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python根據(jù)url地址下載小文件的實例

    python根據(jù)url地址下載小文件的實例

    今天小編就為大家分享一篇python根據(jù)url地址下載小文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python3操作注冊表的方法(Url protocol)

    python3操作注冊表的方法(Url protocol)

    使用python操作注冊表的方法最近學習了一下,現(xiàn)在做一下筆記,由于對Python語言的使用還不是很熟練,所以寫不出高大上的結(jié)構(gòu)
    2020-02-02
  • Python的子線程和子進程是如何手動結(jié)束的?

    Python的子線程和子進程是如何手動結(jié)束的?

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著如何手動結(jié)束Python的子線程和子進程展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python進階教程之函數(shù)對象(函數(shù)也是對象)

    python進階教程之函數(shù)對象(函數(shù)也是對象)

    這篇文章主要介紹了python進階教程之函數(shù)對象,函數(shù)對象是指函數(shù)也是對象,本文還講解了lambda函數(shù)、函數(shù)作為參數(shù)傳遞、map()函數(shù)、filter()函數(shù)、reduce()函數(shù)等內(nèi)容,需要的朋友可以參考下
    2014-08-08
  • 基于python 取余問題(%)詳解

    基于python 取余問題(%)詳解

    這篇文章主要介紹了基于python 取余問題(%)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python基礎(chǔ)之條件控制操作示例【if語句】

    Python基礎(chǔ)之條件控制操作示例【if語句】

    這篇文章主要介紹了Python基礎(chǔ)之條件控制操作,結(jié)合實例形式分析了Python使用if語句進行條件控制的相關(guān)操作技巧與相關(guān)注意事項,需要的朋友可以參考下
    2019-03-03
  • 簡單分析python的類變量、實例變量

    簡單分析python的類變量、實例變量

    在本篇文章中小編給大家整理的是關(guān)于python類變量、實例變量的知識點內(nèi)容,有需要的朋友們可以學習下。
    2019-08-08

最新評論

会东县| 英德市| 德兴市| 龙游县| 大姚县| 灵山县| 油尖旺区| 沙洋县| 祁东县| 曲靖市| 台北市| 武功县| 皮山县| 奎屯市| 乌苏市| 井研县| 内黄县| 丰台区| 抚松县| 府谷县| 泸水县| 阳新县| 故城县| 钟山县| 柯坪县| 云和县| 遵化市| 武夷山市| 涟源市| 游戏| 新化县| 彭阳县| 邵阳市| 礼泉县| 鄂托克前旗| 绥宁县| 射洪县| 西安市| 沈丘县| 当雄县| 宣威市|