Python数据结构算法举例
python基本算法
0、 编程基础查漏
1、 双指针问题
2、 哈希算法
3、 深度优先遍历算法
4、 广度优先遍历算法
5、 回溯算法
6、 贪心算法
7、 动态规划算法
8、 最短路径问题
9、 分治算法
第0章
1、变量:类型和操作;输入和输出;简单变量类型,数字、字符串、元组、字典;
2、三大结构:循序,从前到后依次运行;分支,if语句及它的衍生语句;循环,while 和 for 语句。while 常在不确定循环次数的时候使用, for 语句和 while 语句结构相似功能有很多不同,在 for 循环的开始,首先提供一个范围,无论是一个数的大小范围还是一个列表;循环开始的时候,会用一个变量储存本次循环的值,每循环一次就更新一次这个变量的值,表量不在提供的范围内时,循环结束。
3、列表:概念和使用([ ]表示)。列表是一个有序集合,可以根据索引来找到每一个元素。元素的格式是列表名+[索引值], eg: mylist[0] 。元组中的元素是固定不变的,它们的值不能被更改,长度也是固定的,不能添加或删除元素;虽说不能修改,但是元组中的元素可以被截取、拼接或者重新赋值。字符串、元组和 列表是可以相互转换的,用到 str,list,tuple 函数。任何字符串可以转换为元组和列表。
4、函数:定义和调用。 num = len(mylist) 。
定义函数格式,def 函数名(变量名):
第1章
1、数组合并:合并两个有序数组。
#第一个数组1,3,4,6,10 #第二个数组2,5,8,11 #两个数组进行合并 arr1 = [1,3,4,6,10] arr2 = [2,5,8,11] ind = 0 ans = arr1.copy() #ans初始化为arr1 for i in range(0,len(arr2)): while ind < len(arr1): if arr2[i] <= arr1[ind]: ans.insert(ind+i , arr2[i]) break else: ind = ind + 1 else: ans = ans + arr2[i:] print (ans)
2、二分查找:在有序数组中查找元素。
思想:对折再对折。
3、链表:链表的概念和应用。
第2章
1、哈希算法,又称散列函数算法,是一种查找算法。简单来说就是把一些复杂的数据,通过某种函数映射关系,映射成更加易于查找的关系。
应用:
两个数的和:
单词模式匹配:简单的模式匹配问题
2、常见的数据查找算法:顺序查找、二分查找、深度优先遍历、广度优先遍历、哈希查找。
3、哈希算法原理:根据数据量预先设置一个长度为M的数组,使用一个哈希函数F并以数据的关键字作为自变量,得到唯一的返回值,返回值的范围为0~M-1,这样就可以利用哈希函数F将数据元素映射到数组的某一位下标并把数据存放在对应位置上。查找时,利用哈希函数F计算该数据应存储在哪里,再到相应的位置取出查找的数据。
本文地址:https://blog.csdn.net/weixin_45311624/article/details/109045269