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

淘宝客可道cms网站建设郑州一建招聘

淘宝客可道cms网站建设,郑州一建招聘,龙华网站的建设,ps软件下载官方网站以下是Go语言中常用的算法实现&#xff0c;涵盖排序、搜索、数据结构操作等核心算法。 一、排序算法 1. 快速排序 func QuickSort(arr []int) []int {if len(arr) < 1 {return arr}pivot : arr[0]var left, right []intfor i : 1; i < len(arr); i {if arr[i] < pi…

以下是Go语言中常用的算法实现,涵盖排序、搜索、数据结构操作等核心算法。

一、排序算法

1. 快速排序

func QuickSort(arr []int) []int {if len(arr) <= 1 {return arr}pivot := arr[0]var left, right []intfor i := 1; i < len(arr); i++ {if arr[i] < pivot {left = append(left, arr[i])} else {right = append(right, arr[i])}}left = QuickSort(left)right = QuickSort(right)return append(append(left, pivot), right...)
}

2. 归并排序

func MergeSort(arr []int) []int {if len(arr) <= 1 {return arr}mid := len(arr) / 2left := MergeSort(arr[:mid])right := MergeSort(arr[mid:])return merge(left, right)
}func merge(left, right []int) []int {result := make([]int, 0)for len(left) > 0 || len(right) > 0 {if len(left) == 0 {return append(result, right...)}if len(right) == 0 {return append(result, left...)}if left[0] <= right[0] {result = append(result, left[0])left = left[1:]} else {result = append(result, right[0])right = right[1:]}}return result
}

二、搜索算法

1. 二分查找

func BinarySearch(nums []int, target int) int {low, high := 0, len(nums)-1for low <= high {mid := low + (high-low)/2if nums[mid] == target {return mid} else if nums[mid] < target {low = mid + 1} else {high = mid - 1}}return -1
}

2. 广度优先搜索(BFS)

func BFS(graph map[int][]int, start int) []int {visited := make(map[int]bool)queue := []int{start}result := []int{}for len(queue) > 0 {node := queue[0]queue = queue[1:]if !visited[node] {visited[node] = trueresult = append(result, node)queue = append(queue, graph[node]...)}}return result
}

三、数据结构算法

1. 链表反转

type ListNode struct {Val  intNext *ListNode
}func ReverseList(head *ListNode) *ListNode {var prev *ListNodecurrent := headfor current != nil {next := current.Nextcurrent.Next = prevprev = currentcurrent = next}return prev
}

2. 二叉树遍历

type TreeNode struct {Val   intLeft  *TreeNodeRight *TreeNode
}// 前序遍历
func PreorderTraversal(root *TreeNode) []int {if root == nil {return nil}result := []int{root.Val}result = append(result, PreorderTraversal(root.Left)...)result = append(result, PreorderTraversal(root.Right)...)return result
}

四、动态规划

1. 斐波那契数列

func Fibonacci(n int) int {if n <= 1 {return n}dp := make([]int, n+1)dp[0], dp[1] = 0, 1for i := 2; i <= n; i++ {dp[i] = dp[i-1] + dp[i-2]}return dp[n]
}// 空间优化版
func FibonacciOptimized(n int) int {if n <= 1 {return n}a, b := 0, 1for i := 2; i <= n; i++ {a, b = b, a+b}return b
}

2. 最长公共子序列

func LongestCommonSubsequence(text1 string, text2 string) int {m, n := len(text1), len(text2)dp := make([][]int, m+1)for i := range dp {dp[i] = make([]int, n+1)}for i := 1; i <= m; i++ {for j := 1; j <= n; j++ {if text1[i-1] == text2[j-1] {dp[i][j] = dp[i-1][j-1] + 1} else {dp[i][j] = max(dp[i-1][j], dp[i][j-1])}}}return dp[m][n]
}func max(a, b int) int {if a > b {return a}return b
}

五、图算法

1. Dijkstra最短路径

func Dijkstra(graph map[int]map[int]int, start int) map[int]int {dist := make(map[int]int)for node := range graph {dist[node] = math.MaxInt32}dist[start] = 0pq := &PriorityQueue{}heap.Init(pq)heap.Push(pq, &Item{node: start, priority: 0})for pq.Len() > 0 {item := heap.Pop(pq).(*Item)u := item.nodefor v, weight := range graph[u] {if dist[v] > dist[u]+weight {dist[v] = dist[u] + weightheap.Push(pq, &Item{node: v, priority: dist[v]})}}}return dist
}// 优先队列实现省略...

2. 拓扑排序

func TopologicalSort(graph map[int][]int) []int {inDegree := make(map[int]int)for u := range graph {inDegree[u] = 0}// 计算入度for _, neighbors := range graph {for _, v := range neighbors {inDegree[v]++}}queue := []int{}for u, degree := range inDegree {if degree == 0 {queue = append(queue, u)}}result := []int{}for len(queue) > 0 {u := queue[0]queue = queue[1:]result = append(result, u)for _, v := range graph[u] {inDegree[v]--if inDegree[v] == 0 {queue = append(queue, v)}}}if len(result) != len(graph) {return nil // 有环}return result
}

六、字符串算法

1. KMP字符串匹配

func KMP(text, pattern string) int {lps := computeLPS(pattern)i, j := 0, 0for i < len(text) {if pattern[j] == text[i] {i++j++if j == len(pattern) {return i - j}} else {if j != 0 {j = lps[j-1]} else {i++}}}return -1
}func computeLPS(pattern string) []int {lps := make([]int, len(pattern))length := 0i := 1for i < len(pattern) {if pattern[i] == pattern[length] {length++lps[i] = lengthi++} else {if length != 0 {length = lps[length-1]} else {lps[i] = 0i++}}}return lps
}

2. Rabin-Karp字符串匹配

const primeRK = 16777619func RabinKarp(text, pattern string) int {n := len(text)m := len(pattern)if n < m {return -1}hashPattern := hashStr(pattern)hashText := hashStr(text[:m])if hashText == hashPattern && text[:m] == pattern {return 0}pow := 1for i := 0; i < m-1; i++ {pow *= primeRK}for i := m; i < n; i++ {hashText = (hashText-int(text[i-m])*pow)*primeRK + int(text[i])if hashText == hashPattern && text[i-m+1:i+1] == pattern {return i - m + 1}}return -1
}func hashStr(s string) int {h := 0for _, ch := range s {h = h*primeRK + int(ch)}return h
}

这些算法涵盖了Go语言开发中最常用的算法场景,建议结合实际需求进行优化和调整。


文章转载自:

http://yju9kaFV.ssjtr.cn
http://wNQYpNPC.ssjtr.cn
http://1jgXKq91.ssjtr.cn
http://7E8HDL6k.ssjtr.cn
http://82MjMljG.ssjtr.cn
http://7YidAKOp.ssjtr.cn
http://M9xdNpqV.ssjtr.cn
http://BubuBU4x.ssjtr.cn
http://qObUrNqR.ssjtr.cn
http://pPbRK7Q2.ssjtr.cn
http://wP7a06Iy.ssjtr.cn
http://fmlRqxds.ssjtr.cn
http://XlVCmkes.ssjtr.cn
http://dvLGzhr8.ssjtr.cn
http://kvauada5.ssjtr.cn
http://D8Onyccz.ssjtr.cn
http://NJaIBv1A.ssjtr.cn
http://c8NrMvPH.ssjtr.cn
http://0d0aCodR.ssjtr.cn
http://865I9Ueb.ssjtr.cn
http://aCF4y7Rx.ssjtr.cn
http://JlGRIq5g.ssjtr.cn
http://aDIbahbA.ssjtr.cn
http://pBRTqgHu.ssjtr.cn
http://kQiYhLXl.ssjtr.cn
http://ZREyvDn3.ssjtr.cn
http://KKcd7kre.ssjtr.cn
http://wc9KcJqg.ssjtr.cn
http://hfz2ZTfz.ssjtr.cn
http://pEEKBXoB.ssjtr.cn
http://www.dtcms.com/wzjs/711847.html

相关文章:

  • 网站公司必须帮备案面对不法网站该怎样做
  • 陕煤化建设集团网站做程序网站需要什么代码吗
  • 网站虚拟机从头做有影响吗wordpress钩子自定义钩子
  • 免费自媒体网站个人网页设计概述
  • 网站怎么可以做视频播放有了域名 网站建设
  • 同一网站能否同时运行php和asp公司网站建设 做账
  • 建立网站线上营销网站设计制作说明
  • 苏州知名高端网站建设企业深圳最好的公司排名
  • 怎么样自己做网站赚钱年入40万微服务开发平台
  • 电商网站设计的流程上海seo服务
  • 湛江市网站建设秦皇岛网站
  • 全屏网站模板凡科网h5
  • 石家庄网站建设电话咨询永兴网站建设
  • 网站建设学习心得网络建设推广
  • 徐汇制作网站哪家好建设银行网站不能建行转他行了
  • 怎么看网站是动态还是静态检测网站是否为WordPress
  • 吴忠市住房和城乡建设局网站长沙优化网站价格
  • 安卓app软件开发费用最新网站排名优化方法
  • 为什么亿唐网不做网站做品牌推广网站2024
  • 盐城网站建设厂商知名企业有哪些
  • 成都网站开发技术国外校园网站网站建设发展历程
  • 台州做网站那家好江苏最新消息今天实时
  • 上海有名的网站建设公司有哪些揭阳模板建站开发公司
  • 在哪了做网站开发网站需要什么语言
  • 做招聘网站代理商需要多少钱wordpress 个性化
  • 网站建设百度贴吧wordpress知识管理
  • 桐庐网站制作一个网站的欢迎页怎样做
  • 杭州滨江网站开发实体企业怎么做网络推广
  • 销售型网站如何做推广织梦网站怎么做新闻导航页
  • 如何有效的推广网站威海市做网站的