1. 程式人生 > >Python算法(一)冒泡排序

Python算法(一)冒泡排序

個數 宋體 現在 .... 結果 lang 冒泡排序 spa 元素

3  5  1  6  2

1)第一次:找到這些數中最大的一個,並把它放最後。

3、5找到大的數放到第二個位置

5、1找到大的數放到第三個位置

5、6找到大的數放到第四個位置

2、6找到大的數放大第五個位置

第五個位置就是最大的

a= [3,5,1,6,2]
for i in range(len(a)-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]

print(a[-1]) 2)找到最大值了,現在找次大值,次大值放在倒數第二的位置 a= [3, 1, 5, 2, 6]
for i in range(len(a)-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]

print(a[-2]) 3)找第三個最大的數,放到倒數第三個 for i in range(len(a)-1-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]

print(a[-3]) 4)找到第四個最大的數,放到倒數第四個 for i in range(len(a)-1-1-1-1):
if a[i]>a[i+1]:
a[i],a[i+1] = a[i+1],a[i]

print(a[-4]) 5)剩下的最後一個,就是最小的數,放到第一個 找到規律,實現冒泡 a= [3,5,1,6,2]
for i in range(len(a)-1):#0,1,2,3
for j in range(len(a)-1-i):
if a[j]>a[j+1]:
a[j],a[j+1] = a[j+1],a[j]

print(a) 總結一下過程: 第一次內層循環的結果就是找到最大的值
第二次內層循環的結果就是找到次大的值,本次將忽略最後一個元素的比較
第三次內層循環的結果就是找到第三大的值,本次將忽略倒數第二個元素和最後一個元素的比較 第四次內層循環的結果就是找到第四大的值,本次將忽略倒數第三個元素和倒數第二個元素和最後一個元素的比較 剩下的最後一個,就是最小的數
.......

兩個數在python中如何交互位置

兩種寫法:

1、

a,b = b,a

2、

temp=a

a=b

b=temp

a=[7,2,4,21,44,3]

兩個for循環,第一層控制比幾次,第二層控制怎麽比

升序

for i in range(1,len(a)):

for j in range(len(a)-1):

if a[j]>a[i]:

a[j],a[i]=a[i],a[j]

print a

降序

for i in range(1,len(a)):

for j in range(len(a)-1):

if a[j]<a[i]:

a[j],a[i]=a[i],a[j]

print a

兩個for循環,第一層控制比幾次,第二層控制怎麽比

升序

for i in range(1,len(a)):

for j in range(len(a)-1):

if a[j]>a[i]:

a[j],a[i]=a[i],a[j]

print a

降序

for i in range(1,len(a)):

for j in range(len(a)-1):

if a[j]<a[i]:

a[j],a[i]=a[i],a[j]

print a

Python算法(一)冒泡排序