AI 提示词:算法实现生成

204 浏览
17 试用
5 购买
Oct 23, 2025更新

根据输入需求生成指定算法代码及实现说明

以下是冒泡排序的完整Python代码及其实现思路的说明:


冒泡排序代码

def bubble_sort(arr):
    """
    冒泡排序函数:对一个列表进行升序排序
    :param arr: 输入的整数列表
    :return: 已从小到大排序的整数列表
    """
    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

# 测试冒泡排序
if __name__ == "__main__":
    input_data = [3, 1, 6, 4]
    sorted_data = bubble_sort(input_data)
    print("排序前:", input_data)
    print("排序后:", sorted_data)

实现思路

  1. 算法简介
    冒泡排序是一种简单的排序算法,它通过相邻元素的比较和交换,将未排序部分中最大的元素“冒泡”到队列的末尾。其核心思想是两两比较相邻元素,如果顺序不正确就交换它们,直到整个列表按顺序排好。

  2. 具体步骤

    • 设置一个外层循环,控制排序的轮数(总共需要 n-1 轮,其中 n 是列表的长度)。
    • 在每一轮中,通过内层循环依次比较当前未排序部分元素,两两比较相邻的元素。如果当前元素比下一个元素大,就交换它们的位置,以使得较大的元素逐步“冒泡”到未排序部分的末尾。
    • 每进行一轮,未排序部分的长度减1,因为这一轮已经找到一个最大的元素并将其放在正确的位置。
  3. 算法复杂度

    • 时间复杂度:最坏情况下,外层循环运行 n-1 次,内层循环运行平均 n/2 次,因此时间复杂度为 ( O(n^2) )。
    • 空间复杂度:冒泡排序是原地排序算法,所需额外空间为常数 ( O(1) )。
  4. 测试用例

    • 输入: [3, 1, 6, 4]
      输出: [1, 3, 4, 6]
    • 输入: [5, 2, 9, 1, 5, 6]
      输出: [1, 2, 5, 5, 6, 9]

通过这种实现方式,可以使用简单的逻辑完成小规模数据集的排序。冒泡排序虽然效率不高,但其优美直观,适合作为学习排序的入门算法。

以下是关于二分查找算法的 Java 实现代码,以及对实现细节的简要说明。

Java 实现代码

public class BinarySearch {
    // 实现二分查找方法
    public static int binarySearch(int[] sortedArray, int target) {
        // 定义初始的左右边界
        int left = 0;
        int right = sortedArray.length - 1;

        // 循环直到左边界大于右边界,表示所有可能的位置都已经检查过
        while (left <= right) {
            // 计算中间索引,防止溢出
            int mid = left + (right - left) / 2;

            // 检查中间元素是否等于目标值
            if (sortedArray[mid] == target) {
                return mid; // 找到目标值,返回索引
            } else if (sortedArray[mid] < target) {
                // 如果中间值小于目标值,则目标值在右半部分
                left = mid + 1;
            } else {
                // 如果中间值大于目标值,则目标值在左半部分
                right = mid - 1;
            }
        }

        // 如果目标值不存在,返回 -1
        return -1;
    }

    // 测试方法
    public static void main(String[] args) {
        // 示例输入
        int[] sortedArray = {1, 2, 3, 4, 5, 6};
        int target = 4;

        // 调用二分查找方法并打印结果
        int result = binarySearch(sortedArray, target);
        System.out.println("Target index: " + result); // 输出 3
    }
}

代码实现思路与逻辑

  1. 基本思想

    • 二分查找是一种高效的查找算法,用于在一个已排序的数组中查找目标值的索引。
    • 算法的核心思想是利用数组的有序性,将搜索范围不断缩小一半,直至找到目标值或搜索范围为空。
  2. 参数说明

    • sortedArray:已排序的整数数组。
    • target:需要查找的目标值。
  3. 算法步骤

    • 初始化左右边界 leftright,分别指向数组的起点和终点。
    • 循环过程:在 left <= right 的条件下执行以下操作:
      1. 计算中间索引 mid,使用公式 mid = left + (right - left) / 2,避免因 left + right 导致溢出。
      2. 如果 sortedArray[mid] == target,说明找到目标值,返回其索引 mid
      3. 如果 sortedArray[mid] < target,目标值一定在右半部分,将 left 设为 mid + 1
      4. 如果 sortedArray[mid] > target,目标值一定在左半部分,将 right 设为 mid - 1
    • 如果退出循环后仍未找到目标值,返回 -1
  4. 时间复杂度

    • 每次迭代将搜索范围缩小一半,因此时间复杂度为 O(log n),其中 n 是数组的长度。
  5. 空间复杂度

    • 二分查找为原地查找算法,不需要额外空间,空间复杂度为 O(1)

示例测试

对于输入:

int[] sortedArray = {1, 2, 3, 4, 5, 6};
int target = 4;

输出:

Target index: 3

下面是完整的 Python 代码实现“深度优先搜索”(DFS)遍历一个二叉树节点,并返回按照深度优先顺序遍历的所有节点值的列表。

实现代码:

class TreeNode:
    def __init__(self, val=0, children=None):
        """
        初始化二叉树的节点
        :param val: 节点值
        :param children: 子节点列表(默认为 None 或空列表)
        """
        self.val = val
        self.children = children if children is not None else []


def depth_first_search(root):
    """
    深度优先搜索(DFS)遍历二叉树
    :param root: 树的根节点
    :return: 按照深度优先顺序遍历的所有节点值的列表
    """
    result = []

    def dfs(node):
        """
        通过递归实现深度优先搜索
        :param node: 当前访问的节点
        """
        if not node:
            return  # 如果节点为空,直接返回
        
        result.append(node.val)  # 访问当前节点,加入结果集
        for child in node.children:  # 遍历当前节点的所有子节点
            dfs(child)  # 对子节点进行递归调用

    dfs(root)  # 从根节点开始搜索
    return result


# 测试用例
if __name__ == "__main__":
    # 构建测试树
    root = TreeNode(1, [
        TreeNode(2, [
            TreeNode(4),
            TreeNode(5)
        ]),
        TreeNode(3, [
            TreeNode(6),
            TreeNode(7)
        ])
    ])
    # 调用函数并输出结果
    print(depth_first_search(root))  # 输出 [1, 2, 4, 5, 3, 6, 7]

实现思路与逻辑:

  1. TreeNode 定义:

    • 构造了 TreeNode 类,用于表示二叉树的节点。
    • 每个节点有一个值(val)和一个子节点列表(children)。这样设计更通用,可以处理非完美的子节点。
  2. DFS 主体逻辑:

    • 定义了一个嵌套的递归函数 dfs(node),用于遍历以 node 为根的这个子树。
    • 首先判断当前节点是否为空。如果为空,直接返回。
    • 将当前节点的值加入结果列表。
    • 遍历当前节点的所有孩子(children),针对每个子节点递归调用 dfs
  3. 全局结果存储:

    • 使用一个列表 result 存储所有 DFS 遍历节点值的顺序。
  4. 测试用例:

    • 构造了一个含有多个子树的树,通过调用 depth_first_search 函数,验证算法是否按照深度优先顺序正确访问节点值。

输出说明:

以树结构如下作为输入:

        1
       / \
      2   3
     /|   |\
    4 5   6 7

调用 depth_first_search(root) 将按照深度优先方式遍历,结果为 [1, 2, 4, 5, 3, 6, 7]

这种递归实现方式简单易懂,并且适合树的深度优先遍历问题。

示例详情

适用用户

算法开发人员

帮助算法工程师快速从需求到代码,节省开发时间,专注于核心算法优化

编程初学者

辅助编程入门者从零生成完整代码,陪伴他们逐步理解算法实现逻辑

教育从业者

支持教学使用,可用于算法设计课程展示与学生实践练习,加深其理解

解决的问题

帮助用户快速生成符合业务需求的算法代码及其实现说明,满足开发、学习或项目需求的场景,提升开发效率和知识掌握。

特征总结

以自然语言描述需求,一键生成完整算法代码,快速实现编程目标
支持多种编程语言,根据用户需求动态切换语言生成最佳代码实现
提供详细的算法实现逻辑说明,帮助理解代码思路,降低学习曲线
自动优化输入与输出逻辑,为算法设计提供规范化指导,提升开发效率
场景化解决实际问题,如数据处理、图像操作、优化问题等智能代码生成
无需编程经验,小白用户也能快速生成可用的算法代码,简化复杂度
灵活定制参数化模板,满足特定业务需求,提升代码生成的精确性
适用于教育场景,可用于算法学习与训练,促进编程能力提升
开发速度显著提升,将重心放在业务逻辑上,减少重复性编码工作

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥10.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 96 tokens
- 5 个可调节参数
{ 算法名称 } { 编程语言 } { 算法目的 } { 输入描述 } { 输出描述 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59