Python实现七个基本算法的实例代码

下面是关于“Python实现七个基本算法的实例代码”的完整攻略。

1. 七个基本算法

七个基本法是指排序、查找、字符串、数组、表、树图这七个领域的基本算法。这些算法是计算机科学最基本的算法之一,也是Python开发者必须握的算法之一。

2. 算法实现

下面是使用Python实现七个基本算法的完整代码。

2.1 排序算法

2.1.1 冒泡排序

def bubble_sort(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

2.1.2 快速排序

def quick_sort(arr):
    if(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x >]
    return quick_sort(left) + middle + quick_sort(right)

2.2 查找算法

2.2.1 二分查找

def binary_search(arr, x):
    low, high 0, len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] < x:
            low = mid + 1
        elif arr[mid] > x:
            high = mid - 1
        else:
            return mid
    return -1

2.3 字符串算法

2.3.1 字符串反转

def reverse_string(s):
    return s[::-1]

2.4 数组算法

2.4.1 数组求和

def array_sum(arr):
    return sum(arr)

2.5 链表算法

2.5.1 链表反转

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def reverse_list(head):
    prev = None
    curr = head
    while curr:
        next_node = curr.next
        curr.next = prev
        prev = curr
        curr = next_node
    return prev

2.6 树算法

2.6.1 二叉树遍历

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left        self.right = right

def inorder_traversal(root):
    if not root:
        return []
    return inorder_traversal(root.left) + [root.val] + inorder_traversal(root.right)

2.7 图算法

2.7.1 图遍历

from collections import deque

def bfs(graph, start):
    visited = set()
    queue = deque([start])
    while queue:
        vertex = queue.popleft()
        if vertex not in visited:
            visited.add(vertex)
            queue.extend(graph[vertex] - visited)
    return visited

3. 示例

下面是两个基本算法的示例,分别展示了冒泡排序和二分查找的实现。

3.1 冒排序示例

arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("Sorted array:", sorted_arr)

输出:

Sorted array: [11, 12, 22, 25, 34, 64, 90]

3.2 二分查找示例

arr = [2, 3, 4, 10, 40]
x = 10
result = binary_search(arr, x)
if result != -1:
    print("Element is present at index", str(result))
else:
    print("Element is not present in array")

输出:

Element is present at index 3

4. 总结

七个基本算法是计算机科学中最基本的算法之一,也是开发者必掌握的算法之一。在Python中,我们可以使用各种数据结构和算法来实现这些基本算法。在实际应用中,我们可以根据具体问题选择适当的算法来进行开发和实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现七个基本算法的实例代码 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python unittest如何生成HTMLTestRunner模块

    Python的unittest模块是一种用于编写和运行单元测试的框架。HTMLTestRunner是一个第三方模块,可以将unittest测试结果生成HTML报告。以下是Python unittest如何生成HTMLTestRunner模块的详细攻略: 安装HTMLTestRunner模块 首先需要安装HTMLTestRunner模块。可以使用pip命令进行…

    python 2023年5月14日
    00
  • Python基础学习之简单理解函数

    对于“Python基础学习之简单理解函数”,我们可以从以下几个部分来进行讲解: 一、函数的定义和概述 1.1 函数的作用 在Python中,函数是一段可重复调用的代码块,它能够完成特定的任务,具有以下几个作用: 代码复用:在不同的地方使用同一段代码,提高程序的可读性。 提高代码的可维护性:对于一些需要反复使用的代码,使用函数可以方便后期的维护。 提高代码的复…

    python 2023年6月5日
    00
  • 深入理解Python中字典的键的使用

    深入理解 Python 中字典的键的使用攻略 简介 字典(Dictionary)是 Python 中常用的一种数据类型,它可以存储任意数量的键值对,并且可以通过键来快速访问值。在 Python 中,字典的键可以是任何不可变类型,例如字符串、整数、元组等。本文将深入探讨 Python 中字典的键的使用方法。 访问字典中的值 要访问字典中的值,可以使用字典名加上…

    python 2023年5月13日
    00
  • 使用Python脚本将绝对url替换为相对url的教程

    下面是使用Python脚本将绝对url替换为相对url的教程: 1. 准备工作 首先,我们需要安装Python,一个高级编程语言,用于编写脚本和应用程序。你可以去Python官方网站(https://www.python.org/)下载最新版本的Python安装包,并安装到你的电脑上。 然后,我们需要安装一个Python库。这个库叫做BeautifulSou…

    python 2023年6月3日
    00
  • python元组打包和解包过程详解

    Python元组打包和解包过程详解 在Python中,元组是一种非常有用的数据结构,具有不可变性和可迭代性等多种特性,常用于表示一组有序的数据。元组还有一个很重要的特性——允许同时存储多个值,也就是在定义元组时,可以将多个值一次性赋值给元组,这个过程称为元组打包。同时,也可以将一个元组中的多个值一一赋值给变量,这个过程称为元组解包。这篇文章将详细介绍Pyth…

    python 2023年5月14日
    00
  • Python中plt.scatter()函数的常见用法小结

    当使用Python进行数据可视化时,常会用到matplotlib这个包。其中的plt.scatter()函数就是用来绘制散点图的。本文将对plt.scatter()函数的常见用法进行小结。 1. plt.scatter()函数的基本用法 plt.scatter()函数的基本语法如下: plt.scatter(x, y, s=None, c=None, mar…

    python 2023年6月3日
    00
  • python 提取文件的小程序

    下面是详细讲解“Python 提取文件的小程序”的完整攻略。 1. 确定文件路径 首先需要确定要提取的文件在哪个地方。可以使用 Python 的 os 模块中的 getcwd() 函数获取当前工作目录,然后再通过 os.path.join() 拼接出完整的文件路径。 示例代码: import os file_name = "example.txt&…

    python 2023年5月18日
    00
  • pip报错“ModuleNotFoundError: No module named ‘pip._vendor.distlib’”怎么处理?

    当使用pip时,可能会遇到“ModuleNotFoundError: No module named ‘pip._vendor.distlib’”错误。这个错误通常是由以下原因之一引起的: pip安装或更新过程中出现错误:如果pip安装或更新过程中出现错误,则可能会导致此错误。在这种情况下,需要重新安装或更新pip。 pip安装或更新过程中出现中断:如果pi…

    python 2023年5月4日
    00
合作推广
合作推广
分享本页
返回顶部