当前位置: 首页 > news >正文

广东建设基金管理有限公司网站asp.net网站建设项目实战资料

广东建设基金管理有限公司网站,asp.net网站建设项目实战资料,建网站的流程费用,有免费做理化试验的网站吗在编程开发中#xff0c;算法是用于解决特定问题或完成特定任务的一组指令或过程。算法可以用任何编程语言表示#xff0c;可以像一系列基本操作一样简单#xff0c;也可以像涉及不同数据结构和逻辑的多步骤过程一样复杂。 算法的主要目标是接收输入、处理它并提供预期的输…在编程开发中算法是用于解决特定问题或完成特定任务的一组指令或过程。算法可以用任何编程语言表示可以像一系列基本操作一样简单也可以像涉及不同数据结构和逻辑的多步骤过程一样复杂。 算法的主要目标是接收输入、处理它并提供预期的输出。算法可以根据时间和空间复杂性、用于解决问题的技术以及解决问题的类型进行分类。算法的例子有排序、搜索、图形遍历、字符串操作、数学运算等等。 这些算法广泛用于各种应用程序程序员对它们有深刻的理解很重要所以我会尽力解释它们。 我们将要讨论的8大算法如下 1、排序算法 1).Quicksort Quicksort 是一种分而治之的算法它从数组中选择一个“主元”元素然后根据其他元素是小于还是大于主元将它们分成两个子数组。然后对子数组进行递归排序。 def quicksort(arr):if len(arr)  1:return arrpivot  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  pivot]return quicksort(left)  middle  quicksort(right)print(quicksort([3,6,8,10,1,2,1])) 2).归并排序 归并排序算法是一种分而治之的算法它将一个数组一分为二对两半进行排序然后将它们归并在一起。 def merge_sort(arr):if len(arr)  1:return arrmid  len(arr) // 2left  merge_sort(arr[:mid])right  merge_sort(arr[mid:])return merge(left, right)def merge(left, right):result  []i  0j  0while i  len(left) and j  len(right):if left[i]  right[j]:result.append(left[i])i  1else:result.append(right[j])j  1result  left[i:]result  right[j:]return result print(merge_sort([3,6,8,10,1,2,1])) 3).堆排序 堆排序算法是一种基于比较的排序算法它将输入元素构建一个堆然后从堆中反复提取最大元素并将其放在排序后的输出数组的末尾。 def heap_sort(arr):n  len(arr)for i in range(n, -1, -1):heapify(arr, n, i)for i in range(n-1, 0, -1):arr[i], arr[0]  arr[0], arr[i]heapify(arr, i, 0)def heapify(arr, n, i):largest  il  2 * i  1r  2 * i  2if l  n and arr[i]  arr[l]:largest  lif r  n and arr[largest]  arr[r]:largest  rif largest ! i:arr[i], arr[largest]  arr[largest], arr[i]heapify(arr, n, largest) print(heap_sort([3,6,8,10,1,2,1])) 2.搜索算法 1).二分搜索 二分搜索是一种从已排序的项目列表中查找项目的有效算法。它的工作原理是将要搜索的数组部分重复def binary_search(arr, x): 分成两半直到找到目标值。 def binary_search(arr, x):low  0high  len(arr) - 1mid  0while low  high:mid  (high  low) // 2if arr[mid]  x:low  mid  1elif arr[mid]  x:high  mid - 1else:return midreturn -1 print(binary_search([1,2,3,4,5,6,7], 4)) 2).哈希表 哈希表是一种将键映射到值的数据结构使用哈希函数计算到桶或槽数组的索引从中可以找到所需的值。 class HashTable:def __init__(self):self.size  10self.keys  [None] * self.sizeself.values  [None] * self.sizedef put(self, key, data):index  self.hash_function(key)while self.keys[index] is not None:if self.keys[index]  key:self.values[index]  data  # updatereturnindex  (index  1) % self.sizeself.keys[index]  keyself.values[index]  datadef get(self, key):index  self.hash_function(key)while self.keys[index] is not None:if self.keys[index]  key:return self.values[index]index  (index  1) % self.sizereturn Nonedef hash_function(self, key):sum  0for pos in range(len(key)):sum  sum  ord(key[pos])return sum % self.sizet  HashTable() t.put(apple, 10) t.put(orange, 20) t.put(banana, 30) print(t.get(orange)) 3.图算法 1).Dijkstra 最短路径算法 Dijkstra 最短路径算法是一种寻找图中节点之间最短路径的算法。 import heapqdef dijkstra(graph, start):heap  [(0, start)]visited  set()while heap:(cost, v)  heapq.heappop(heap)if v not in visited:visited.add(v)for u, c in graph[v].items():if u not in visited:heapq.heappush(heap, (cost  c, u))return visitedgraph  {A: {B: 2, C: 3},B: {D: 4, E: 5},C: {F: 6},D: {G: 7},E: {G: 8, H: 9},F: {H: 10},G: {},H: {} } print(dijkstra(graph, A)) 4.动态规划 斐波那契数列 斐波那契数列是可以使用动态规划解决的问题的经典示例。 def fibonacci(n):if n  0:return 0elif n  1:return 1else:return fibonacci(n-1)  fibonacci(n-2)print(fibonacci(10)) 5.贪婪算法 霍夫曼编码 霍夫曼编码是一种无损数据压缩算法它使用贪婪算法为给定的一组符号构造前缀码。 from collections import Counter, namedtupledef huffman_encoding(data):Generates a Huffman encoded string of the input data# Create a frequency counter for the datafreq_counter  Counter(data)# Create a namedtuple for the Huffman tree nodesHuffmanNode  namedtuple(HuffmanNode, [char, freq])# Create a priority queue for the Huffman treepriority_queue  PriorityQueue()# Add all characters to the priority queuefor char, freq in freq_counter.items():priority_queue.put(HuffmanNode(char, freq))# Combine nodes until only the root node remainswhile priority_queue.qsize()  1:left_node  priority_queue.get()right_node  priority_queue.get()combined_freq  left_node.freq  right_node.freqcombined_node  HuffmanNode(None, combined_freq)priority_queue.put(combined_node)# Generate the Huffman code for each characterhuffman_code  {}generate_code(priority_queue.get(), , huffman_code)# Encode the input dataencoded_data  for char in data:encoded_data  huffman_code[char]return encoded_data, huffman_code print(huffman_encoding(aaaaabbbcccc)) 6.分治法 归并排序上面已经解释过了 7.回溯 The N-Queens Problem这是一个可以使用回溯法解决的经典问题。目标是将 N 个问题放在 NxN 的棋盘上使得任何皇后都不能攻击任何其他皇后。 def solveNQueens(n):def could_place(row, col):# check if a queen can be placed on board[row][col]# check if this row is not under attack from any previous queen in that columnfor i in range(row):if board[i]  col or abs(board[i] - col)  abs(i - row):return Falsereturn Truedef backtrack(row0, count0):for col in range(n):if could_place(row, col):board[row]  colif row  1  n:count  1else:count  backtrack(row  1, count)return countboard  [-1 for x in range(n)]return backtrack() print(solveNQueens(4)) 该算法开始将皇后放置在第一行并且对于每个放置的皇后它检查它是否受到任何先前皇后的攻击。 如果不是它将继续到下一行并重复该过程。如果将皇后置于受到攻击的位置算法会回溯并尝试不同的位置。这一直持续到所有皇后都被放置在棋盘上且没有任何相互攻击。 8.随机算法 随机快速排序随机选择主元的快速排序算法的一种变体。 import randomdef randomized_quicksort(arr):if len(arr)  1:return arrpivot  random.choice(arr)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  pivot]return randomized_quicksort(left)  middle  randomized_quicksort(right)print(randomized_quicksort([3,6,8,10,1,2,1])) 这些是每个程序员都应该熟悉的一些最常用的算法。了解这些算法与它的实现可以帮助程序员在设计和实现高效解决方案时做出更好的决策。
http://www.dnsts.com.cn/news/264057.html

相关文章:

  • 龙华网站建设方案表国外扁平化网站
  • 网站开发公司 深圳如何在百度里做推广网站
  • 网站开发类合同TP框架网站的中英文切换怎么做
  • 北京网站优化wyhseowordpress建站如何制作微信
  • 毕业设计做网站老师会问什么网站建设多少钱一个平台
  • 网站建站网站我待生活如初恋网络科技有限公司照片
  • 点胶喷嘴技术支持东莞网站建设做前端项目怎么进行网站切图
  • 域名购买网站如何扫描一个网站的漏洞
  • 紧固件网站建设如何用html制作网站
  • 莆田市城厢区建设局网站网站建设管理职责
  • 做公司网站哪家好 上海谈谈设计和建设网站体会
  • 广西哪家公司做网站的最优化方法
  • 网站做联盟还赚钱吗微信平台开发公司成都
  • 东昌府聊城网站建设杭州公司网站建设
  • 用c 做网站企信网是什么网站
  • 成品网站免费模板做网站内页图片尺寸
  • 鞋子网站建设规划书wordpress默认页面设置方法
  • 分享设计作品网站有做电动车修车的网站吗
  • 小语种建网站建设万网人网站备案流程
  • html5手机网站开发教程龙采做网站要多少钱
  • 黄岛区网站建设域名免费注册网站
  • 吴江企业网站建设国外网站服务器建设
  • 郴州专业的网站建设如何自己做视频网站
  • 怎么做自己的网站网站 建设服务器
  • 有些网站做不了seo网站开发文档管理工具
  • 深圳市网站建设有补贴吗两人合伙做网站但不准备开公司
  • 做初级会计实务题的网站在哪个网站上可以学做衣服
  • 帝国cms做网站流程linux系统网站建设
  • 邯郸做网站推广的地方如何查看一个网站的所有二级域名
  • 东莞网站设计四川酒店网站建设