![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
影子传说~
这个作者很懒,什么都没留下…
展开
-
期望为线性时间的选择算法(golang实现)
介绍一种解决选择问题的分治算法。randonmizedSelect算法以随机版快排为模型。与快排的区别为:快排会递归处理划分的两边,而此算法只处理划分的一边。快排期望运行时间为O(nlgn),此算法的期望运行时间为O(n)。这里假设输入数据都是互异的。此算法返回数组A[p..r]中第i小的元素。package mainimport ( "math/rand" "time")func partition(arr []int, p, r int) int { x := arr原创 2021-03-21 20:33:14 · 150 阅读 · 0 评论 -
计数排序golang实现
package mainimport ( "fmt" "math")func countingSort(arr []int, k int) []int { resArr := make([]int, len(arr)) tempArr := make([]int, k+1) for j := 0; j<len(arr); j++ { tempArr[arr[j]] += 1 } for i := 1; i<=k; i++ { tempArr[i] += t.原创 2021-03-18 21:25:52 · 181 阅读 · 0 评论 -
快排--golang实现
package mainimport "fmt"func qSort(arr []int, p, r int) { if p < r { q := partition(arr, p, r) qSort(arr, p, q-1) qSort(arr, q+1, r) }}func partition(arr []int, p, r int) int { x := arr[r] i := p-1 for j := p; j < r; j++ { if arr.原创 2021-03-16 20:43:19 · 309 阅读 · 0 评论 -
堆排序golang实现
package mainimport "fmt"// 堆排序//算法导论chapter 6func left(i int) int { return 2*i}func right(i int) int { return 2*i+1}// 维护最大堆性质func maxHeapify(arr []int, i int, heapSize int) { l := left(i) r := right(i) var largest int if l < heapSi.原创 2021-03-16 19:38:20 · 79 阅读 · 0 评论 -
最大子数组问题的golang实现
//最大子数组问题 分治 //算法导论 page: 67 [the third edition]package mainimport ( "math")func find_max_cross_subArray(arr []int, low, mid, high int) (int, int, int){ left_sum := (-1) * math.MaxInt8 sum := 0 max_left := 0 for i := mid; i >= low; i-- { .原创 2021-03-13 21:24:23 · 105 阅读 · 0 评论 -
归并排序golang实现
package mainimport "fmt"func mergeSort(arr []int, start, end int) { if start >= end { return } middle := (start + end) / 2 mergeSort(arr, start, middle) mergeSort(arr, middle+1, end) merge(arr, start, middle, end)}func merge(arr []int, .原创 2021-03-12 20:50:08 · 101 阅读 · 0 评论 -
插入排序——golang实现
//目前计划把算法导论上相关的算法自己用golang实现一下。// 路漫漫其修远兮,吾将上下而求索。package mainfunc insertion_sort(nums []int) { n := len(nums) for j := 1; j<n; j++ { key := nums[j] i := j-1; for i >= 0 && nums[i]>key { .原创 2021-03-11 20:28:25 · 55 阅读 · 0 评论