排序演算法 冒泡和選擇

2021-09-24 10:12:51 字數 1427 閱讀 5146

最近複習一下排序演算法,從簡單的開始,陸續寫上來

一:氣泡排序

氣泡排序總的平均時間複雜度為

import random

def bubblesort(arr):

for i in range(0,len(arr)):

for j in range(i+1,len(arr)):

if arr[i] > arr[j]:

temp = arr[i]

arr[i] = arr[j]

arr[j] = temp

print("排序後:",arr)

if __name__ == '__main__':

arr =

x = random.randint(2,20)

for i in range(0,x):

print("排序前:",arr)

bubblesort(arr)

冒泡算是基礎入門的演算法,理解起來也相對簡單

二:選擇排序

選擇排序是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法。

import random

def selectsort(arr):

for i in range(0,len(arr)):

#獲取最小數字下標

min_index = i

for j in range(i+1,len(arr)):

#如果出現更小數字,交換下標

if arr[min_index] > arr[j]:

min_index = j

#如果min_index改變了說明下標i代表的不是最小數,和最小數交換

if i != min_index:

temp = arr[i]

arr[i] = arr[min_index]

arr[min_index] = temp

print("排序後:",arr)

if __name__ == '__main__':

arr =

x = random.randint(2,20)

for i in range(0,x):

print("排序前:",arr)

selectsort(arr)

**來自菜鳥教程,多謝。

排序演算法 冒泡和選擇排序

氣泡排序的基本思想是 通過對待排序序列從前向後 從下標較小的元素開始 依次比較 相鄰元素的值,若發現逆序則交換,使值較大的元素逐漸從前移向後部,就象水底下的氣泡一樣逐漸向上冒。氣泡排序演算法 public static int maopaosort int initial return initia...

Python演算法(氣泡排序和選擇排序)

氣泡排序 重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,一層一層的將較大的元素往後移動,類似氣泡慢慢變大的過程。演算法思想 1.從第乙個和第二個開始比較,如果第乙個比第二個大,則交換位置 然後比較第二個和第三個,依次類推 2.經過第一輪迴圈,最大的數已經排在最後一位,所以重複以上操作,第二大的...

排序演算法之氣泡排序和選擇排序

個人感覺氣泡排序和選擇排序相似,都是通過兩個for迴圈,兩兩比較實現排序過程。但比較的不同之處在於,若有n個數,氣泡排序進行n 1趟比較,第一趟進行n 1次比較,第i趟進行n i次比較,並且是連續相鄰的兩個數比較,第乙個和第二個數比,再第二個和第三個數比 而選擇排序是將n個數中第乙個數與剩下所有數比...