算法模板汇总
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了算法模板汇总,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2323字,纯文字阅读大概需要4分钟。
内容图文
![算法模板汇总](/upload/InfoBanner/zyjiaocheng/1319/0eec1066234e4e9986478a9e192ddcc9.jpg)
算法模板汇总
1、牛顿迭代法(c++代码)
int mysqrt(int x){ double tmps = x; double k = 1.0; double k0 = 0.0; while(abs(k0-k) >= 1){ k0 = k; k = (k + tmpx/k)/2; } return (int)k; }
2、二分查找代码模板
left, right = 0, len(array) - 1 while left <= right: mid = (left + right) / 2 if array[mid] == target: #find the target!!breakorreturn result elif array[mid] < target: left = mid + 1 else: right = mid + 1
3、递归代码模板
def recursion(level, param1, param2, ...): # recursion terminator if level > MAX_LEVEL: process_result return#process logic in current level process(level, data...) #drill down self.recursion(level + 1,p1, ...) #reverse the current level status if needed
4、分治代码模板
def divide_conquer(problem, param1, param2, ...): if problem is None: print_result return#prepare data data = prepare_data(problem) subproblems = split_problem(problem, data) #conquer subproblems subresult1 = self.divide_conquer(subproblems[0], p1, ...) subresult2 = self.divide_conquer(subproblems[1], p1, ...) subresult3 = self.divide_conquer(subproblems[2], p1, ...) #process and generate the final result result = process_result(subresult1, subresult2, subresult3, ...) #revert the current level states
5、Tire树代码模板
class Trie(object): def __init__ (self): self.root = {} self.end_of_word = ‘#‘def insert(self, word): node = self.root for char in word: node = node.setdefault(char, {}) node[self.end_of_word] = self.end_of_word def search(self, word): node = self.root for char in word: if char notin node: return False node = node[char] return self.end_of_word in node def startsWith(self, prefix): node = self.root for char in prefix: if char notin node: return False node = node[char] return True
6、BFS代码模板
def BFS(graph, start, end): queue = [] queue.append([start]) while queue: node = queue.pop() visited.add(node) process(node) nodes = generate_related_nodes(node) queue.push(nodes)
7、DFS代码模板(递归写法)
visited = set() def dfs(node, visited): if node in visited: return visited.add(node) for next_node in node.children(): ifnot next_node in visited: dfs(next_node, visited)
8、DFS代码模板(非递归写法)
def DFS(self, tree): if tree.root is None: return [] visited, stack = [], [tree.root] while stack: node = stack.pop() visited.add(node) process(node) nodes = generate_related_nodes(node) stack.push(nodes)
原文:https://www.cnblogs.com/zhaop8078/p/11915340.html
内容总结
以上是互联网集市为您收集整理的算法模板汇总全部内容,希望文章能够帮你解决算法模板汇总所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。