以下这些事冒泡排序、选择排序和二分查找的基础代码(顺序查找不放了)的基础代码。代码的变形有很多,但是理解好基础代码事理解变形代码的基础。
a=[8,4,5,6,9,7,2]
b=[8,4,5,6,9,7,2]
na=len(a)
nb=len(b)
#升序,上浮
for i in range(na-1):
for j in range(na-2,i-1,-1):
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
#升序,下沉
for i in range(nb-1):
for j in range(0,nb-i-1):
if b[j]>b[j+1]:
b[j],b[j+1]=b[j+1],b[j]
print(a)
print(b)
c=[2,4,5,6,7,8,9]
d=[2,4,5,6,7,8,9]
nc=len(c)
nd=len(d)
#降序,上浮
for i in range(nc-1):
for j in range(nc-2,i-1,-1):
if c[j]<c[j+1]:
c[j],c[j+1]=c[j+1],c[j]
#降序,下沉
for i in range(nd-1):
for j in range(0,nd-i-1):
if d[j]<d[j+1]:
d[j],d[j+1]=d[j+1],d[j]
print(c)
print(d)
a=[39,17,41,14,16]
for j in range(len(a)-1):
minindex=j
for i in range(j,len(a)):
if a[minindex]>a[i]:
minindex=i
a[j],a[minindex]=a[minindex],a[j]
print(a)
a=[1,6,8,9,15,16,20,28,30]
key=int(input("你要查找的数字:"))
flag=False
n=len(a)
i=0 ; j=n-1
while i<j:
m=(i+j)//2
if a[m]==key:
flag=True
break
elif key<=a[m]:
j=m-1
else:
i=m+1
if flag:
print("找到了,下标为"+str(m))
else:
print("没找到")