📜  算法和函数(1)

📅  最后修改于: 2023-12-03 15:11:33.096000             🧑  作者: Mango

算法和函数介绍

程序员需要掌握算法和函数这两个重要的概念。算法是解决问题的方法,它是指一系列的计算步骤和规则,用来解决特定的问题。函数是一种封装代码的方法,可以重复利用,提高代码的复用性和可读性。

算法
常用的算法

排序算法

排序算法是非常常用的算法之一,它的目的是将一组数据按照某种规则进行排列。常见的排序算法有冒泡排序、选择排序、插入排序、快速排序等。

# 冒泡排序
def bubbleSort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1] :
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

搜索算法

搜索算法主要是用来查找数据中的某一个特定值。常见的搜索算法有线性搜索和二分搜索。

# 二分搜索
def binary_search(arr, target):
    low, high = 0, len(arr)-1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] > target:
            high = mid - 1
        elif arr[mid] < target:
            low = mid + 1
        else:
            return mid
    return -1
性能分析

算法的性能分析是非常重要的,因为它可以帮助我们选择更优的算法。常见的算法性能分析指标有时间复杂度和空间复杂度。

时间复杂度

时间复杂度指的是算法执行的时间与问题规模之间的关系。通常用大O符号表示,比如O(1)、O(logn)、O(n)、O(nlogn)、O(n^2)等。

空间复杂度

空间复杂度指的是算法所需的存储空间与问题规模之间的关系。通常用和时间复杂度相同的符号表示。

函数
函数的定义

函数是一段封装好的代码块,它可以接受参数,可以返回值。函数的主要作用是将复杂的代码块封装成一个个小的模块,提高代码的复用性和可读性。

# 定义一个函数
def add(a, b):
    return a + b
函数参数

函数可以接受多个参数,参数的类型可以是任意的,包括数字、字符串、序列、函数等等。函数的参数可以分为位置参数、关键字参数和默认参数等几种类型。

# 位置参数
def add(a, b):
    return a + b

# 关键字参数
def greet(name, msg):
    print("Hello", name + ', ' + msg)

# 默认参数
def power(x, n=2):
    return x**n
lambda函数

lambda函数是一种匿名函数,它不需要函数名称,可以作为另一个函数的参数进行传递。lambda函数通常用于需要一个简单的函数的场合。

# lambda函数
sum = lambda a, b: a + b
print(sum(3, 4)) # 输出7
内置函数

Python内置了大量的函数,包括数学函数、文件操作函数、序列函数等等。这些函数大大提高了编程效率,可以让程序员快速地完成各种任务。

# 数学函数
import math
print(math.sqrt(16)) #输出4.0

# 文件操作函数
f = open("test.txt", "w")
f.write("Hello World!")
f.close()

# 序列函数
list = [1, 2, 3, 4]
print(len(list)) #输出4
总结

算法和函数是程序员必须熟练掌握的技能,掌握了这两个概念,可以让程序员写出更加高效和可读的代码。