热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
根据输入需求生成指定算法代码及实现说明
以下是冒泡排序的完整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)
算法简介
冒泡排序是一种简单的排序算法,它通过相邻元素的比较和交换,将未排序部分中最大的元素“冒泡”到队列的末尾。其核心思想是两两比较相邻元素,如果顺序不正确就交换它们,直到整个列表按顺序排好。
具体步骤
n-1 轮,其中 n 是列表的长度)。算法复杂度
n-1 次,内层循环运行平均 n/2 次,因此时间复杂度为 ( O(n^2) )。测试用例
[3, 1, 6, 4][1, 3, 4, 6][5, 2, 9, 1, 5, 6][1, 2, 5, 5, 6, 9]通过这种实现方式,可以使用简单的逻辑完成小规模数据集的排序。冒泡排序虽然效率不高,但其优美直观,适合作为学习排序的入门算法。
以下是关于二分查找算法的 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
}
}
基本思想:
参数说明:
sortedArray:已排序的整数数组。target:需要查找的目标值。算法步骤:
left 和 right,分别指向数组的起点和终点。left <= right 的条件下执行以下操作:
mid,使用公式 mid = left + (right - left) / 2,避免因 left + right 导致溢出。sortedArray[mid] == target,说明找到目标值,返回其索引 mid。sortedArray[mid] < target,目标值一定在右半部分,将 left 设为 mid + 1。sortedArray[mid] > target,目标值一定在左半部分,将 right 设为 mid - 1。-1。时间复杂度:
n 是数组的长度。空间复杂度:
对于输入:
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]
TreeNode 定义:
TreeNode 类,用于表示二叉树的节点。val)和一个子节点列表(children)。这样设计更通用,可以处理非完美的子节点。DFS 主体逻辑:
dfs(node),用于遍历以 node 为根的这个子树。children),针对每个子节点递归调用 dfs。全局结果存储:
result 存储所有 DFS 遍历节点值的顺序。测试用例:
depth_first_search 函数,验证算法是否按照深度优先顺序正确访问节点值。以树结构如下作为输入:
1
/ \
2 3
/| |\
4 5 6 7
调用 depth_first_search(root) 将按照深度优先方式遍历,结果为 [1, 2, 4, 5, 3, 6, 7]。
这种递归实现方式简单易懂,并且适合树的深度优先遍历问题。
帮助算法工程师快速从需求到代码,节省开发时间,专注于核心算法优化
辅助编程入门者从零生成完整代码,陪伴他们逐步理解算法实现逻辑
支持教学使用,可用于算法设计课程展示与学生实践练习,加深其理解
帮助用户快速生成符合业务需求的算法代码及其实现说明,满足开发、学习或项目需求的场景,提升开发效率和知识掌握。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
免费获取高级提示词-优惠即将到期