没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
python编程的50种基础算法_Python⼊门教程:⼏种常见的 Python算法实现 今天跟⼤家总结的Python学习教程关于Python算法的实现,上次催我更算法的伙伴可以粗来了! 1、选择排序 选择排序是⼀种简单直观的排序算法。它的原理是这样:⾸先在未排序序列中找到最⼩(⼤)元素,存放到排序序列的起始位置,然后,再 从剩余未排序元素中继续寻找最⼩(⼤)元素,然后放到已排序序列的后⾯,以此类推,直到所有元素均排序完毕。算法实现如下: #找到最⼩的元素def FindSmall(list): min=list[0] for i in range(len(list)): if list[i] min=list[i] return min #选择排序def Select_Sort(list): newArr=[] for i in range(len(list)): minValue=FindSmall(list) newArr.append(minValue) list.remove(minValue) return newArr testArr=[11,22,33,21,123]p
资源推荐
资源详情
资源评论
python编程的50种基础算法_Python⼊门教程:⼏种常见的
Python算法实现
今天跟⼤家总结的Python学习教程关于Python算法的实现,上次催我更算法的伙伴可以粗来了!
1、选择排序
选择排序是⼀种简单直观的排序算法。它的原理是这样:⾸先在未排序序列中找到最⼩(⼤)元素,存放到排序序列的起始位置,然后,再
从剩余未排序元素中继续寻找最⼩(⼤)元素,然后放到已排序序列的后⾯,以此类推,直到所有元素均排序完毕。算法实现如下:
#找到最⼩的元素def FindSmall(list):
min=list[0] for i in range(len(list)): if list[i]
min=list[i] return min
#选择排序def Select_Sort(list):
newArr=[] for i in range(len(list)):
minValue=FindSmall(list)
newArr.append(minValue)
list.remove(minValue) return newArr
testArr=[11,22,33,21,123]print(Select_Sort(testArr))
2、快速排序
快速排序的运⾏速度快于选择排序,它的⼯作原理是这样:设要排序的数组是N,⾸先任意选取⼀个数据(通常选⽤数组的第⼀个数)作为
关键数据,然后将所有⽐它⼩的数都放到它前⾯,所有⽐它⼤的数都放到它后⾯,这个过程称为⼀趟快速排序。可以使⽤python⽤递归式
的⽅法来解决这个问题:
def Quick_Sort(list): if len(list)<2: return list else:
temp=list[0]
less=[i for i in list[1:] if i<=temp]
more=[i for i in list[1:] if i>temp] return Quick_Sort(less)+[temp]+Quick_Sort(more)
testArr= [13,44,53,24,876,2]print(Quick_Sort(testArr))
3、⼆分查找
⼆分查找的输⼊是⼀个有序的列表,如果要查找的元素包含在⼀个有序列表中,⼆分查找可以返回其位置。打个⽐⽅来说明⼆分查找的原
理:⽐如我随便想了个范围在1~100以内的整数,由你来猜,以最少的次数来猜出这个数字,你每次猜完给出个数字,我会回复⼤了或⼩
了,第⼀种⽅法是你从1开始依次往后猜,那如果我想的数字是100,那么你就要猜100次;第⼆种⽅法是从50开始,如果我说⼩了,那你
就猜75,就这样依次排除掉⼀半的剩余数字,这就是⼆分查找法。可以看出⼆分查找法更加快速。对于包含n个元素的有序列表,⽤简单查
找最多需要n步,⽽⼆分查找法则最多只需lon2 n步。下⾯⽤python来实现该算法:
def Item_Search(list,item):
low=0
high=len(list)-1 while low<=high:
middle=(low+high)//2 print(list[middle]) if list[middle]>item:
high=middle-1 elif list[middle]
low=middle+1 else: return middle return None
资源评论
是空空呀
- 粉丝: 168
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功