作者注:思维导图画出来非常难,我花了1天才花出来,我是用手画出来的(电脑中自带的画图)
上一次我做了那个名字我改了一下
原作者:嘿嘿就是我,^_^^_^………………
目录
一.算法的特点
有穷性:执行步骤有限
确定性:每个步骤都是可行的,并且能在有限的时间内完成。
有1个或多个输出
有0个或多个输入
二.排序算法
2.1冒泡算法
重点:2个2个比较
注意了:下图只是一个大循环中的一次
源代码:
a=[1,6,7,3,5,2,4,8]#序列
b=len(a)
for i in range(0,b-1):
for j in range(0,b-1-i):
if a[j]<a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
思维导图(更好理解一些) :
2.2选择排序——有点难度
重点:0号位和后面的最小的一个数交换位置
源代码:
a=[3,9,1,0,7, 6]
print('开头',a)
count = len(a)
for i in range(0, count-1):
k = i
for j in range(i + 1, count):
if a[k] > a[j]:
k = j
if k != i:
a[k], a[i] = a[i], a[k]
print('end', a)
思维导图(让人好理解一些):
2.3非常有难度的——插入排序
重点:把一个拿出来与前面的相比来插入。
乍一看图一点难度也没有,但是代码有点难。
a=[5,1,9]
count=len(a)
for i in range(0,count):
key=a[i]
j=i-1
while j>=0 and a[j]<key:
a[j+1]=a[j]
j-=1
print(a)
a[j+1]=key
print(a)
如果理解代码有点难请看思维导图:
三.查找算法
3.1顺序查找——也就是所谓的枚举法来查找
一个个枚举,看看和要查找的元素是否相同。
图片我就不放了。
简单的代码:
lst=[32,17,56,25,26,89,65,12]
key=12
b=-1
for i in lst:
if i==key:
b=lst.index(i)
break
if b!=-1:
print(str(key)+'的索引是:'+str(b))
else:
print(str(key),'没找到')
我用的是遍历,你们可以用range
简单的流程图:
流程图太大了
3.2对分查找——这个思维导图是最长的
分成2半分成 2半还是分成 2半。
源代码:
lst=[1,2,3,46,57]
key=46
n=len(lst)
i,j=0,n-1
b=-1
while i<=j:
m=(i+j)//2
if key==lst[m]:
b=m
break
elif key>lst[m]:
i=m+1
else:
j=m-1
if b!=-1:
print(str(key)+'的索引是:'+str(b))
else:
print(str(key),'没找到')
超长的个思维导图:
彩蛋:
表情包大浪
电脑也有自带的表情包,符号构成的表情包和搞笑表情包……,我用的是windows电脑,来到设置里,点开个性化,里面有个文本输入,点开它,右上角就会出现按哪个键可以语音输入和输入表情包。上面还有个输入栏,你可以在上面输入试一试。我这台电脑是按像窗户的那个键和分号(;)输入表情包。按像窗户那个键和h语音输入。
现在我给你们展示几个表情包: