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