Python的五种常见算法,一文解读,清晰易懂~

Python的五种常见算法,一文解读,清晰易懂~这篇文章主要介绍了如何用 Python 实现几种常见算法 文中代码简单易懂非常适合零基础刚刚入门的小伙伴 方便大家更好的学习 感兴趣的朋友可以了解下 以上就是五个 Python 的常见算法 python 算法

大家好,欢迎来到IT知识分享网。


前言

这篇文章主要介绍了如何用Python实现几种常见算法,文中代码简单易懂非常适合零基础刚刚入门的小伙伴,方便大家更好的学习,感兴趣的朋友可以了解下~


在这里插入图片描述

一、选择排序

选择排序是一种简单直观的排序算法。它的原理是这样:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的后面,以此类推,直到所有元素均排序完毕。算法实现如下:

#找到最小的元素def FindSmall(list): min=list[0] for i in range(len(list)): if list[i]<min: 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)) 

二、快速排序

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)) 

三、二分查找

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]<item: low=middle+1 else: return middle return None test_list=[1,3,5,7,9,11,13,15,17,19,21] Item_Search(test_list,11) 

四、广度优先搜索

#使用字典构建图graph={} graph["you"]=["Alice","Bob","Claire"] graph["Bob"]=["Anuj","Peggy"] graph["Alice"]=["Peggy"] graph["Claire"]=["Tom","Jonny"] graph["Anuj"]=[] graph["Peggy"]=[] graph["Tom"]=[] graph["Jonny"]=[]from collections import deque#简单的判断方法def person_is_seller(name): return name=='Tom'def Search(name): searched=[] #用于记录检查过的人,防止进入死循环 search_queue=deque() #创建队列 search_queue+=graph[name] while search_queue: person=search_queue.popleft() if not person in searched: #仅当这个人没检查过时才检查 if person_is_seller(person): print("the seller is {0}".format(person)) return True else: search_queue+=graph[person] searched.append(person) #将这个人标记为检查过 return Falseprint(Search("you")) 

五、贪婪算法

fruits=set(["苹果","香蕉","梨子","西瓜","草莓","橘子","荔枝","榴莲"]) #箱子以及包含的水果box={} box["b1"]=set(["苹果","香蕉","西瓜"]) box["b2"]=set(["草莓","橘子","榴莲"]) box["b3"]=set(["梨子","荔枝","草莓"]) box["b4"]=set(["香蕉","橘子"]) box["b5"]=set(["梨子","榴莲"]) final_boxs=set() #最终选择的箱子#直到fruits为空while fruits: best_box=None #包含了最多的未包含水果的箱子 fruits_covered=set() #包含该箱子包含的所有未包含的水果 #循环迭代每个箱子,并确定它是否为最佳箱子 for boxItem,fruitItem in box.items(): covered=fruits & fruitItem #计算交集 if len(covered)>len(fruits_covered): best_box=boxItem fruits_covered=covered fruits-=fruits_covered final_boxs.add(best_box) print(final_boxs) 

这个算法还是挺有意思的。


总结

以上就是五个Python的常见算法~


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

一、Python所有方向的学习路线
二、Python基础学习视频

② 路线对应学习视频

③练习题

三、精品Python学习书籍

四、Python工具包+项目源码合集

①Python工具包
②Python实战案例
③Python小游戏源码
五、面试资料

六、Python兼职渠道


Python的五种常见算法,一文解读,清晰易懂~



免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/123044.html

(0)
上一篇 2025-10-12 08:20
下一篇 2025-10-12 08:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信