導航:首頁 > 源碼編譯 > Python排序演算法

Python排序演算法

發布時間:2022-02-23 21:55:16

㈠ 怎樣用python將數組里的數從高到低排序

1、首先我們定義一個列表輸入一串大小不一的數字。

㈡ python寫冒泡排序

冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序演算法
它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從Z到A)錯誤就把他們交換過來。走訪元素的工作是重復地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。
這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「冒泡排序」。
中文名
冒泡排序
外文名
Bubble Sort
所屬學科
計算機科學
時間復雜度
O(n2)
演算法穩定性
穩定排序演算法
快速
導航
演算法分析演算法描述優化演算法比較
演算法原理
冒泡排序演算法的原理如下:[1]
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。[1]
對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。[1]
針對所有的元素重復以上的步驟,除了最後一個。[1]
持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

㈢ python簡單實現基數排序演算法

python簡單實現基數排序演算法
這篇文章主要介紹了python簡單實現基數排序演算法,僅用4行代碼即可實現基數排序演算法,非常簡單實用,分享給大家供大家參考。
具體實現方法如下:
from random import randint
def main():
A = [randint(1, 99999999) for _ in xrange(9999)]
for k in xrange(8):
S = [ [] for _ in xrange(10)]
for j in A:
S[j / (10 ** k) % 10].append(j)
A = [a for b in S for a in b]
for i in A:
print i
main()

希望本文所述對大家的Python程序設計有所幫助。

㈣ python冒泡排序方法

#-*-coding:utf-8-*-

#g:/python
#冒泡排序
#1.定義一個列表
number=[6665,666,323,124,4442,5,123,412,55]
#外循環控制冒泡排序的次數,n個數為n-1次
for i in range(0,len(number)-1):
#內循環控制每次排序對比的次數,n個數對比n-1次
for j in range(0,len(number)-1):
#進行對比,交換位置
if(number[j]>number[j+1]):
index=number[j+1]
number[j+1]=number[j]
number[j]=index
#輸出排序後的列表
print(number)

㈤ Python實現的快速排序演算法詳解

Python實現的快速排序演算法詳解
本文實例講述了Python實現的快速排序演算法。分享給大家供大家參考,具體如下:
快速排序基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
如序列[6,8,1,4,3,9],選擇6作為基準數。從右向左掃描,尋找比基準數小的數字為3,交換6和3的位置,[3,8,1,4,6,9],接著從左向右掃描,尋找比基準數大的數字為8,交換6和8的位置,[3,6,1,4,8,9]。重復上述過程,直到基準數左邊的數字都比其小,右邊的數字都比其大。然後分別對基準數左邊和右邊的序列遞歸進行上述方法。
實現代碼如下:
def parttion(v, left, right):
key = v[left]
low = left
high = right
while low < high:
while (low < high) and (v[high] >= key):
high -= 1
v[low] = v[high]
while (low < high) and (v[low] <= key):
low += 1
v[high] = v[low]
v[low] = key
return low
def quicksort(v, left, right):
if left < right:
p = parttion(v, left, right)
quicksort(v, left, p-1)
quicksort(v, p+1, right)
return v
s = [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
print("before sort:",s)
s1 = quicksort(s, left = 0, right = len(s) - 1)
print("after sort:",s1)
運行結果:
before sort: [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
after sort: [1, 2, 2, 3, 4, 4, 5, 6, 6, 8, 9, 11, 15]

㈥ python列表排序方法

列表的sort方法就是用來進行排序的。

主要就是兩個參數,key,reverse


先說reverse,這個很簡單,就是指出是否進行倒序排序:一般情況下,1排在2的前面,而倒序則相反。


key參數:一般它是一個函數,它接受列表中每一個元素,返回一個可用用於比較的值。

s=[1,2,3,4,5]

s.sort(key=lambda _: _**2%7)

print(s)

輸出的是:[1, 3, 4, 2, 5]

如果看不懂lambda表達式,可以看這一段等價的寫法:

def myfn(x):

....return (x * x) % 7


s=[1,2,3,4,5]

s.sort(key=myfn)

print(s)

輸出的結果是一樣的。

key使用的函數可以是自定義函數也可以pytho內置的函數,或者是某個類或者實例的方法,只要它能接受一個參數,返回一個可比較的值即可。比如這樣:

s=[[1,2,4],[3,3,5],[1,1,1],[5,7,9]]

s.sort(key=max) # 直接使用max函數作為排序依據

print(s)

[[1, 1, 1], [1, 2, 4], [3, 3, 5], [5, 7, 9]]


㈦ Python中既然有了sort()可以排序,那還有必要實現其他排序演算法嗎例如堆排序,快速排序

肯定有必要的,sort是基於快速排序,但我們編程的時候不單單要會用,而且要知道原理
此外,有些情況下冒泡、選擇排序的時間復雜度也不差,而且實現簡單,更適用於一些小數據量的情況,這時候這些排序反而有優勢
而且有時候數據結構不一定是整型等, 是我們自定義的類型,要對其中的某個成員變數排序,知道原理就更容易理解

㈧ Python選擇排序演算法 如何做!急求!!

#coding: utf-8
#!/usr/bin/python import random

#隨機生成0~100之間的數值def get_andomNumber(num):
lists=[]
i=0
while i<num:
lists.append(random.randint(0,100))
i+=1
return lists

# 選擇排序def select_sort(lists):
count = len(lists)
for i in range(0, count):
min = i
for j in range(i + 1, count):
if lists[min] > lists[j]:
min = j
temp = lists[min]
lists[min] = lists[i]
lists[i] = temp
return lists

a = get_andomNumber(10)
print("排序之前:%s" %a)

b = select_sort(a)
print("排序之後:%s" %b)

㈨ 下面python程序里的排序演算法是屬於哪一種

冒泡排序

閱讀全文

與Python排序演算法相關的資料

熱點內容
chromejava插件安裝 瀏覽:372
帥氣牛仔用什麼app 瀏覽:501
伺服器read卡怎麼查看型號 瀏覽:704
zcat命令 瀏覽:110
單片機程序案例 瀏覽:121
透傳程序員 瀏覽:747
java連接字元串數組 瀏覽:750
無法連接到版本伺服器是什麼原因 瀏覽:476
壓縮機起動兩分鍾停機為什麼 瀏覽:279
筆記本沒串口怎麼寫單片機程序 瀏覽:854
如何識別網站源碼語言 瀏覽:393
javaweb首頁 瀏覽:337
程序員招聘網站哪個好 瀏覽:576
ios仿美團外賣源碼 瀏覽:138
pdf文本換行 瀏覽:426
愛豆app哪裡下載 瀏覽:885
pac腳本怎麼打開源碼 瀏覽:552
安卓手機下載什麼控制空調 瀏覽:92
如何把加密的pdf的水印去掉 瀏覽:907
已加密文件咋列印 瀏覽:429