数据结构与算法2—数组
数组是一种常见的线性数据结构,其将相同类型的元素存储在连续的内存空间中,我们将元素在数组中的位置称为该元素的索引。 1. 数组的常用操作1.1 初始化数组初始化数组时,我们可以根据需求选用数组的两种初始化方式:无初始值、给定初始值。在未指定初始值的情况下,大多数编程语言会将数组元素初始化为0,但是经过实测,C++和C在数组为初始化时,大多数情况下不会将数组初始化为0,特别是使用new或malloc创建动态数组时数组元素都是随机值,因此在C++和C中建议创建完数组后就立刻将其初始化: 123456789101112/* 初始化数组arr */// 将数组存储在栈上int size = 5;int arr[5] = {0};printf("数组 arr = ");printArray(arr, 5);/* 初始化数组nums */// 将数组存储在栈上int nums[5] = {1, 2, 3, 4, 5};printf("数组 nums = ");printArray(nums,...
数据结构与算法1—基本概念与复杂度
1. 算法的定义算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 2. 算法的特性算法具有五个基本特性:输入、输出、有穷性、确定性和可行性。 2.1 输入输出算法通常具有零个或多个输入,但至少有一个或多个输出。输出的形式可以是打印输出,也可以是返回一个或多个值。 2.2 有穷性有穷性指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。 2.3 确定性确定性指算法的每一步骤都具有确定的含义,不会出现二义性。 2.4 可行性可行性指算法的每一步都必须是可行的,也就是说每一步都能够执行有限次数完成。可行性意味着算法可以转化为程序上机运行,并得到正确的结果。 3. 算法设计的要求算法设计的要求包括正确性、可读性、健壮性、高效率和低内存需求。 3.1...
Python格式规范
1. Python命名规范1.1 文件名、包名、模块名、变量名、函数名、实例名全部采用小写的形式,并使用下划线连接,如下所示: 12my_car.pymy_car 1.2 类名采用驼峰命名法,即将类中的每个单词的首字母都大写,且不使用下划线,如下所示: 1ElectricCar 1.3 常量名所有字母大写,单词之间采用下划线连接,如下所示: 1MAX_NUM = 100 2. Google Python命名规范 模块名写法: module_name ;包名写法: package_name ;类名: ClassName ;方法名: method_name ;异常名: ExceptionName ;函数名: function_name ;全局常量名: GLOBAL_CONSTANT_NAME ;全局变量名: global_var_name ;实例名: instance_var_name ;函数参数名: function_parameter_name ;局部变量名: local_var_name . 3....
Python学习笔记6—类
1. 创建和使用类1.1 创建Dog类下面将创建一个表示小狗的Dog类,根据Dog类创建的每个示例都将存储名字和年龄,并且赋予每条小狗蹲下(sit())和打滚(roll_over())的能力: dog.py 123456789101112131415class Dog(): """ 创建一个表示小狗的类 """ def __init__(self, name, age): """ 初始化属性name和age """ self.name = name self.age = age def sit(self): """ 模拟小狗被命令时蹲下 """ print(self.name.title() + " is now sitting.") def roll_over(self): ...
Python学习笔记5—函数
1. 函数的定义在Python中,函数可按下面这种方式定义: 12345def greet_user(username): """ 显示简单的问候语 """ print("Hello, " + username.title() + "!") greet_user('jesse') 上面这段代码演示了最简单的函数结构,第一行代码使用关键字def来定义一个函数,def后面的greet_user(username)为函数名,username叫做函数的形参,而’jesse’叫做实参。紧跟在def greet_user(username):后面的所有缩进行构成了函数体。””” 显示简单的问候语 “””叫做文档字符串,描述的函数是做什么的,文档字符串用三引号括起,Python使用它们来生成有关程序中函数的文档。要使用这个函数,可调用它,依次指定函数名以及要传入括号中的参数。上面这段代码的输出为: 1Hello, Jesse! 2....
Python学习笔记4—字典
1. 字典的创建和访问字典中的值在Pyhton中,字典是一系列键值对,每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。在Python中,字典用放在花括号{}中的一系列键值对表示,如下面就是一个字典: 1alien_0 = {'color': 'green', 'points': 5} 键值对是两个相关联的值,指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键值对之间用逗号分隔。 要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示: 12alien_0 = {'color': 'green'} print(alien_0['color']) 这将返回字典中alien_0中与键’color’相关联的值: 1green 2....
Python学习笔记3—元组
1. 元组的创建在Python中元组的定义和用法与列表相似,列表用方括号[]表示,而元组用圆括号()表示,与列表不同的是元组中的元素不可修改,除此之外,Python的列表长度是可变的,而元组长度不可变,元组的定义如下所示: 123dimensions = (200, 50)print(dimensions[0])print(dimensions[1]) 在上面的代码中,先定义了元组dimensions,然后输出索引为0和1的两个元素,其输出结果为: 1220050 如果尝试修改该元组中某个元素的值,则会导致Python报错,如: 12dimensions = (200, 50) dimensions[0] = 250 此时会返回如下错误: 1234Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> dimensions[0] = 250TypeError: 'tuple' object does not...
Python学习笔记2—列表的进阶操作
1. 使用for循环进行列表遍历假设我们有一个魔术师名单,需要将其中每个魔术师的名字都打印出来,则可以用for 循环进行遍历并打印,如: 123magicians = ['alice', 'david', 'carolina']for magician in magicians: print(magician) 这段代码从列表magicians中取出一个名字,并将其存储在变量magician中,进而将其打印,其输出结果如下: 123alice david carolina 2. 创建数值列表2.1 使用函数range()使用函数range()可以生成一些数字,如: 12for value in range(1,5): print(value) 则打印的结果为: 12341 2 3 4 需要注意的是,range(1,5)只是打印数字1-4,并且range(1,5)并不会生成一个包含数字1-4的列表。 2.2...
Python学习笔记1—列表的简单操作
1. 列表的定义在Pyhton中,用[]来表示列表。并用逗号来分隔其中的元素,在下方是一个简单的列表示例,这个列表包含几种自行车: 12bicycles = ['trek', 'cannondale', 'redline', 'specialized']print(bicycles) 下方为打印结果: 1['trek', 'cannondale', 'redline', 'specialized'] 2. 访问列表元素在Python中,可以通过索引来访问列表元素,如: 12bicycles = ['trek', 'cannondale', 'redline',...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment















