Golang实现经典算法

1、快速排序

func QuickSort(nums []int,left,right int){val := nums[(left+right)/2]i,j := left,rightfor nums[j] > val {j--}for nums[i] < val {i++}nums[i],nums[j] = nums[j],nums[i]i++j--if i < right {QuickSort(nums,i,right)}if j > left {QuickSort(nums,left,j)}
}

2、冒泡排序

func BubbleSort(nums []int){length := len(nums)for i:=1;i<length;i++{for j:=0;j<length-1;j++{if nums[j]>nums[i] {nums[j],nums[i] = nums[i],nums[j]}}}
}

3、二分查找法
二分查找的基础是先做排序,然后做二分查找

func BinarySearch(nums []int,left,right,val int){k := (left+right)/2if nums[k]>val {return BinarySearch(nums,left,k,val)}else if nums[k] < val {return BinarySearch(nums,k,right,val)}else{ return k}
}

4、斐波拉契数列

找出第n位数是什么
1、递归方法 时间复杂度是n方

func FibonacciRecursion(n int)int{if n==0 {return 0}else if n==1 {return 1}else{ return FibonacciRecursion(n-1)+FibonacciRecursion(n-2)}
}

2、迭代法
时间复杂度是线性的

func FibonacciFind(n int)int{x,y,fib := 0,1,0for i:=0;i<=n;i++{if i==0 {fib=0}else if i== 1{fib = x+y}else{fib=x+yx,y = y,fib  }}return fib
}

Golang实现经典算法相关推荐

  1. 图解Golang的GC算法

    图解Golang的GC算法 原创 RyuGou 程序猿菜刚RyuGou 2019-03-10 来源:https://mp.weixin.qq.com/s/_h0-8hma5y_FHKBeFuOOyw ...

  2. 数据挖掘的一些经典算法

    数据挖掘能做以下七种不同事情 (分析方法): 数据挖掘能做以下七种不同事情 · 分类 (Classification) · 估计(Estimation) · 预测(Prediction) · 相关性分 ...

  3. 经典算法研究系列:二、Dijkstra 算法初探

    经典算法研究系列:二.Dijkstra 算法初探  July   二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...

  4. 经典算法书籍推荐以及算法书排行【算法四库全书】

    经典算法书籍推荐以及算法书排行[算法四库全书] 作者:霞落满天   https://linuxstyle.blog.csdn.net/    https://blog.csdn.net/21aspne ...

  5. 经典算法题每日演练——第六题 协同推荐SlopeOne 算法

    原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...

  6. 白话经典算法系列之七 堆与堆排序

     堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法.学习堆排序前,先解说下什么是数据结构中的二叉堆. 二叉堆的定义 二叉堆是全然二叉树或者是近似全然二叉树. 二叉堆满 ...

  7. 免费技术直播:唐宇迪带你一节课了解机器学习经典算法

    常常有小伙伴在后台反馈:机器学习经典算法有哪些? 自学难度大又没有效果,该怎么办? CSDN为了解决这个难题,联合唐宇迪老师为大家带来了一场精彩的直播[一节课掌握机器学习经典算法-线性回归模型].本次 ...

  8. 一文了解迁移学习经典算法

    来源 | linolzhang的CSDN博客 作者 | linolzhang ▌一. 了解迁移学习 迁移学习(Transfer Learning)目标是将从一个环境中学到的知识用来帮助新环境中的学习任 ...

  9. 调包侠福音!机器学习经典算法开源教程(附参数详解及代码实现)

    Datawhale 作者:赵楠.杨开漠.谢文昕.张雨 寄语:本文针对5大机器学习经典算法,梳理了其模型.策略和求解等方面的内容,同时给出了其对应sklearn的参数详解和代码实现,帮助学习者入门和巩固 ...

最新文章

  1. vector int string 化
  2. 全球最小人工心脏在华中科大完成植入:58岁患者术后精神状态良好
  3. Java序列化闲聊:序列化和Json
  4. Gradle常用配置
  5. Python-OpenCV 笔记2 -- 图像的基本属性和操作
  6. JVM 类加载机制深入浅出
  7. Android之android.os.NetworkOnMainThreadException异常
  8. defineProperty AND defineProperties
  9. matlab 查找字符串中第一个不为空格的_替换空格(剑指offer第三题)
  10. JSK-386 分段函数【入门】
  11. 新浪微博客户端(26)-添加转发评论工具条
  12. 必备电子技术经典资料汇总:基础入门篇1.6G
  13. 程序员考证书,有用吗?
  14. 【ACL2020】结果已出,录用论文抢先看!
  15. 计算机上怎么在表格输入分秒,“excel表格怎么输入角度“excel 表格中怎么输入分秒的符号...
  16. Intelligent information retrieval(智能信息检索综述)
  17. ANE for Android Setp by Step
  18. kafka opentracing
  19. ThinkPHP6项目基操目录
  20. curl put请求

热门文章

  1. QML_组合框ComboBox
  2. 全国专业技术人员计算机应用能力考试广东,广东省人事厅关于全国专业技术人员计算机应用能力考试扩充科目(模块)有关问题的通知...
  3. Python——程序:彩票游戏(细节修改)
  4. Java面试考点思维导图
  5. html页面变成黑白,修改CSS样式实现网页变灰色/黑白代码的几个方法整理
  6. unity导入FBX模型
  7. Verilog语言快速入门
  8. JavaScript简单实现论坛发帖(留言)
  9. 安卓开发之-编写第一个java程序HellowWorld
  10. 【硬件基础】--------电容