[Python] 搜索
搜索 快速总结: 不论列表是否有序,顺序搜索算法的时间复杂度都是 $O(n)$。 对于有序列表来说,二分搜索算法在最坏情况下的时间复杂度是 $O(\log n)$。 基于散列表的搜索算法可以达到常数阶。 Python 提供了运算符 in,通过它可以方便地检查元素是否在列表中。 >>> 15 in [3, 5, 2, 4, 1] False >>> 3 in
搜索 快速总结: 不论列表是否有序,顺序搜索算法的时间复杂度都是 $O(n)$。 对于有序列表来说,二分搜索算法在最坏情况下的时间复杂度是 $O(\log n)$。 基于散列表的搜索算法可以达到常数阶。 Python 提供了运算符 in,通过它可以方便地检查元素是否在列表中。 >>> 15 in [3, 5, 2, 4, 1] False >>> 3 in
递归三原则 所有的递归算法都要遵守三个重要的原则: 递归算法必须有基本情况; 递归算法必须改变其状态并向基本情况靠近; 递归算法必须递归地调用自己。 计算一列数之和 循环求和函数: def listsum(numList): theSum = 0 for i in numList: theSum = theSum + i return theSum 递归
无序列表抽象数据类型 无序列表是元素的集合,其中每一个元素都有一个相对于其他元素的位置。以下是无序列表支持的操作: List() 创建一个空列表。它不需要参数,且会返回一个空列表。 add(item) 假设元素 item 之前不在列表中,并向其中添加 item。它接受一个元素作为参数,无返回值。 remove(item) 假设元素 item 已经在列表中,并从其中移除 item。它接受一个元素作
队列抽象数据类型 队列是元素的有序集合,添加操作发生在其尾部,移除操作则发生在头部。队列的操作顺序是 FIFO(first-in first-out),它支持以下操作: Queue() 创建一个空队列。它不需要参数,且会返回一个空队列。 enqueue(item) 在队列的尾部添加一个元素。它需要一个元素作为参数,不返回任何值。 dequeue() 从队列的头部移除一个元素。它不需要参数,且会返
栈抽象数据类型 栈是元素的有序集合,添加操作与移除操作都发生在其顶端。栈的操作顺序是 LIFO(last-in first-out),即后进先出。它支持以下操作: Stack() 创建一个空栈。它不需要参数,且会返回一个空栈。 push(item) 将一个元素添加到栈的顶端。它需要一个参数 item,且无返回值。 pop() 将栈顶端的元素移除。它不需要参数,但会返回顶端的元素,并且修改栈的内容