python的幾種常見排序方法

2021-09-02 22:45:27 字數 1680 閱讀 5513

#簡單交換排序

n=int(input('請輸入需要排序的資料個數:'))

x=for i in range(n):

for i in range(n-1):

for j in range(i+1,n):

if x[i] > x[j]:

x[i],x[j] = x[j],x[i] #每次符合結果的都進行資料交換

print("排序後的資料:", x)

#氣泡排序

#俗話說冒泡冒泡,從後面往前面排(氣泡由下向上)

# 所以要從小到大排序,則需要一步步把最大的數放最後面,與其他幾種排序方法不同!

n=int(input('請輸入需要排序的資料個數:'))

x=for i in range(n):

for i in range(n-1):

#for j in range(i,n-1):錯誤因為已排好的數在後面。

for j in range(n-i-1):

if x[j] > x[j+1]:

x[j], x[j+1] = x[j+1], x[j]

print("選擇排序後的資料:", x)

#選擇排序

n=int(input('請輸入需要排序的資料個數:'))

x=for i in range(n):

for i in range(n-1):

k = i

for j in range(i+1,n):

if x[k] > x[j]:

k = j #每次符合結果的不進行資料交換,僅僅儲存最小數此時的索引下標

if k != i:

x[i],x[k] = x[k],x[i]

print("選擇排序後的資料:", x)

#二分法查詢資料,前提是序列是有序的

#即選擇乙個合適的k值,將序列0---n-1分為3部分:x[0:k], x[k], x[k+1:];k一般取int(n/2)

#例如9個數:可取k=int(9/2)=4 => x[0],x[1],x[2],x[3]; x[4]; x[5],x[6],x[7],x[8]

a = eval(input("請輸入乙個序列:"))

#list(a),返回的是新的列表;若未賦值a此時仍為元組;除非a=list(a)

a = sorted(a) #sorted()用於序列(列表,元組)排序,返回生成排序後的新列表

#a = list(a); a.sort() #sort()僅用於列表排序不生成排序後的新列表,原列表順序被改變

x = int(input("請輸入你要查詢的資料:"))

n = len(a)

lower = 0; upper = n-1; flag = -1

while flag == -1 and lower <= upper: #二分查詢

mid = int((lower+upper)/2)

if x == a[mid]:

flag = 1

elif x < a[mid]:

upper = mid-1

else:

lower = mid+1

if flag == 1:

print("資料已找到", x)

else:

print("未找到該資料", x)

幾種常見的排序方法。

氣泡排序 氣泡排序是每次都從第乙個元素開始,到最後的k 每迴圈完一次,最後乙個元素位置固定。include include int main void for i 0 i n 1 i k for i 0 i n i return 0 選擇排序 選擇排序每一次迴圈玩從正數的第i個元素位置確定。incl...

幾種常見的排序方法

氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。以4,2,3,1為例,第一次迴圈4與2比較...

JAVA常見的幾種排序方法

日常操作中常見的排序方法有 氣泡排序 快速排序 選擇排序 插入排序 希爾排序,甚至還有基數排序 雞尾酒排序 桶排序 鴿巢排序 歸併排序等。一 氣泡排序 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有...