工作较忙,没办法抽出时间专心攻克《Go语言编程》,随着了解的更多,越发体会出这本书中小例子的精巧。

掌握这些小例子,就可以完成Go基础的全面掌握

最近抽出时间专心敲这些例子。但是发现一些问题,在设计上,许大大的算法可能更难让我理解一点。特对关于二章中结尾例子中算法,写出自己的算法,较之,我自己写的,更方便自己理解。

/*   快速排序算法*/func quicSort(values []int){if len(values) <= 1{return }

 mid, i := values[0], 1 //首值做关键值,且抽出数组中的第二个键值,方便比对 head, tail := 0, len(values) - 1 //抽出第一个键值,还有数组的数量

 for head < tail {

if mid < values[i] { values[i], values[tail] = values[tail], values[i] //比它大的,就往后扔 tail-- //往后扔一个,就少扔一次 }else{ values[head], values[i] = values[i], values[head]//比它小的,就往前扔 head++//往前扔一个,也少扔一次 i++//比对的键值,进行+1 } }

 values[head] = mid//此时关键值,应当就在head这个键值上

 quicSort(values[:head])//递归 quicSort(values[head + 1:])//递归}
/*   冒泡算法*/

func bubbleSort(values []int){for i := 0; i < len(values); i++ {

for z := i + 1; z < len(values); z++ {if values[i] > values[z]{ values[i], values[z] = values[z], values[i] } } }}

冒泡算法比较简单,就不做介绍了,就是从头算到尾。

转载于:https://www.cnblogs.com/supermarx/p/6938380.html

简单算法系列:快速算法/冒泡算法两则相关推荐

  1. 算法系列——贝尔曼福特算法(Bellman-Ford)

    本系列旨在用简单的人话讲解算法,尽可能避免晦涩的定义,读者可以短时间内理解算法原理及应用细节.我在努力! 本篇文章编程语言为Python,供参考. 贝尔曼福特算法(Bellman-Ford) 典型最短 ...

  2. 算法系列(二):贪心算法--Huffman编码

    算法系列(二):贪心算法--Huffman编码 一.分析 问题描述: 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法.其压缩率通常在20%-90%之间.哈夫曼编码算法使用字符在文件中出现的频率 ...

  3. 经典算法——鸡尾酒排序(冒泡算法改良)

    经典算法--鸡尾酒排序(冒泡算法改良) 文章分类:Java编程 搞开发的人都需要积累一些经典算法,以备不时之须.         搞开发也有好几年了,积累的一些算法一直没做过整理,这段时间无聊就把这些 ...

  4. MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”【含matlab源代码】

    前言 快速平方根倒数算法(Fast InvSqrt)是一种快速计算平方根的倒数的算法,常用于向量标准化运算,在光照渲染中有重要应用.此算法最早可能是于90年代前期由SGI所发明,后来于1999年在&l ...

  5. 机器学习算法系列之K近邻算法

    本系列机器学习的文章打算从机器学习算法的一些理论知识.python实现该算法和调一些该算法的相应包来实现. 目录 K近邻算法 一.K近邻算法原理 k近邻算法 通俗解释 近邻距离的度量 k值的选择 KN ...

  6. 排序算法系列:Shell 排序算法

    概述 希尔排序(Shell Sort)是 D.L.Shell 于 1959 年提出来的一种排序算法,在这之前排序算法的时间复杂度基本都是 O(n2n^{2}n2) 的,希尔排序算法是突破这个时间复杂度 ...

  7. C++不知算法系列之解析回溯算法中的人文哲学

    1. 前言 回溯算法让我想起"退一步海阔天空"的名言.当事情的发展到了绝境或是边缘时,可以试着后退一步,换一个方向.换一种策略,或许会看到新的出路或生机. 回溯算法的精髓:无所畏惧 ...

  8. 智能算法系列之蚁群算法

      本博客封面由ChatGPT + DALL·E 2共同创作而成. 文章目录 前言 1. 算法思想 2. 算法流程 3. 细节梳理 4. 算法实现 4.1 问题场景 4.2 代码实现 代码仓库:IAL ...

  9. C++不知算法系列之集结常规算法思想

    1. 前言 数据结构和算法是程序的 2 大基础结构,如果说数据是程序的汽油,算法则就是程序的发动机. 什么是数据结构? 指数据之间的逻辑关系以及在计算机中的存储方式,数据的存储方式会影响到获取数据的便 ...

  10. 【算法系列之十三】二叉树两叶节点的最大距离

    1.题目描述     给定一棵二叉树,计算这课二叉树的直径长度,即为二叉树任意两个节点间的最长路径.比如: 这棵二叉树的最长路径为3. 2.解题思路     使用递归进行求解,每次递归的过程中,先求出 ...

最新文章

  1. ASP.NET内置对象的总结
  2. Visual Studio 2008 和 .NET Framework 3.5 Service Pack 1 Beta 发布
  3. POJ1155 TELE(树形DP)
  4. C#中ref与out区别
  5. 《终极海报——23位创意大咖的设计评论与思想》—埃伦 • 勒普顿
  6. 【BZOJ5457】城市(线段树合并)
  7. 通向财务自由之路09_知道何时收手:如何保护你的资本
  8. [微信小程序]swiper保持宽高比
  9. 飞机大战php 源码,飞机大战资源素材及完整代码
  10. ug10.0安装好了怎么找到
  11. BiTree T 和 Bitree T 和 BitNode *T 和 T-lchild
  12. java经典源码_java经典源代码
  13. MySQL 事务隔离级别
  14. Andorid 安卓接入支付宝支付(当面付)
  15. Eclipse jdt 格式化java代码
  16. 数据结构(本科学习)
  17. 货郎担问题(TSP)
  18. 这些常见的漏洞和修复方法你知道吗?
  19. 小程序中实现拍照,自拍功能
  20. 警惕 “格机软件” 格式化手机全字库..不要轻易给不明觉厉的软件给root权限

热门文章

  1. ubuntu16.04安装red5
  2. Android之xUtils-3.0数据库框架详解
  3. SpringCloud之Hystrix断路器以及dashboard 属性详解
  4. RAC3——RAC原理开始
  5. Gartner预测公有云将迎来“双头垄断”局面
  6. Microsoft.XMLHTTP“没有权限”的错误
  7. Makefile文件生成 GNU Autotools的使用方法
  8. linux下测试权限,linux 文件权限
  9. [USACO DEC13] 虫洞
  10. 前端性能优化(慕课网笔记)-3-代码优化