个人学习分享
  • 首页
  • Go系列
    计算机基础 Go入门基础 Go设计模式 Go数据结构与算法
  • Docker系列
    Docker入门基础
  • K8s系列
    K8s架构
  • 分类
  • 归档
  • 关于
  • 其他
    标签 友链

归并排序

实现原理今天介绍比前面三种排序算法性能更好的排序算法 —— 归并排序。该算法是利用分治思想解决问题的一个非常典型的应用,归并排序的基本思路就是先把数组一分为二,然后分别把左右数组排好序,再将排好序的左右两个数组合并成一个新的数组,最后整个数组就是有序的了。所谓归并排序,指的是如果要排序一个数据序列,我们可以先把该序列从中间分成前后两部分,然后对这两部分分别做排序操作,再将排好序的两部分合并在一起
2022-04-29
Go数据结构与算法 > 常见算法
#数据结构与算法 #常见算法

选择排序

实现原理首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的实现过程: 在不断未排序的区间中找到最小的元素,将其放入已排序区间的尾部。选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间。但是选择排序每次会从未排序区间中找到最小的元素,将其放到已排序区
2022-04-26
Go数据结构与算法 > 常见算法
#数据结构与算法 #常见算法

插入排序

实现原理插入排序的原理是:我们将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素,就是数组的第一个元素。插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序。重复这个过程,直到未排序区间中元素为空,算法结束。插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
2022-04-22
Go数据结构与算法 > 常见算法
#数据结构与算法 #常见算法

冒泡排序

要给大家介绍的是基于选择的排序算法,常见基于选择的排序算法有冒泡排序、插入排序、选择排序、归并排序和快速排序,我们在选择排序算法的时候,通常会根据以下几个维度来考虑: 时间复杂度 空间复杂度(对内存空间的消耗) 算法的稳定性(如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变) 我们首先从冒泡排序开始。 实现原理冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相
2022-04-18
Go数据结构与算法 > 常见算法
#数据结构与算法 #常见算法

八种排序算法的稳定性分析

TIPs: 一个算法稳定是指,如果A=B,A在B前面,在进行排序算法后,仍然保持A在B前面。 算法分类:常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。 算
2022-04-16
Go数据结构与算法 > 常见算法
#数据结构与算法 #常见算法

排序算法场景概念解读

什么是稳定排序、原地排序、时间复杂度、空间复杂度: 稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。 非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。 原地排序:原地排序就是指在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。 非原地
2022-04-06
Go数据结构与算法 > 常见算法
#数据结构与算法

实现自己的Composer包

一、Composer简介Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 二、准备工作 一个github账号 一个packagist账号 一台安装composer的开发机 packagist github composer packagist注册链接 github注册链接 composer文档 三、发布流程
2022-04-05
PHP
#PHP #composer

Go跨平台编译(交叉编译)

跨平台编译跨平台编译,也叫交叉编译,我可以在win平台上,编译成linux平台可执行的文件。这也是Go备受青睐的原因,像java,python,php等语言,我们开发一般是在win平台上开发,部署的时候在linux上部署,在处理第三方依赖是比较麻烦,不仅开发累,运维也累,虽然现在有docker解决了这个痛点,但是应该还是没原生来的舒服。如果使用Go的话,不管是什么第三方依赖,最终只会打包成一个可
2022-03-25
Go入门基础 > 其他
#Go入门基础 #编译

Go-内置类型和内置函数

1. 内置类型 值类型1234567891011121314151617181920bool -- 布尔类型string -- 8位byte序列构成的字符串,约定但不必须是utf-8编码的文本。字符串可以为空但不能是nil,其值不可变。int -- 至少32位的有符号整形,但和int32/rune并非同一类型。uint -- 至少32位的无符号整形,但和uint32不是同一类型。int8 --
2022-03-20
Go入门基础 > 其他
#Go入门基础

Go-init函数和mian函数

init函数go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性。有下面的特征: init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 每个包可以拥有多个init函数 包的每个源文件也可以拥有多个init函数 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明) 不同包的init函数按照包导入的依赖关系决定该初始化函数的执
2022-03-16
Go入门基础 > 其他
#Go入门基础

Go实现单链表

单链表NNode: 包含一个数据域,一个指针域(指向下一个节点)LList : 包含头指针 (指向第一个节点),链表长度链表的特点:不能随机访问,只能根据链一个一个查找,查找的时间复杂度是 O (n) 示例代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
2022-03-10
Go数据结构与算法 > 数据结构
#数据结构与算法 #数据结构

数学基础

学习数据结构,需要具备以下数学基础知识,这里只是简单提及一些公式和原理,具体的内容和深入学习请参考《高等数学》《离散数学》《数论》相关知识。 1. 指数指数是幂运算aⁿ(a≠0)中的一个参数,a为底数,n为指数,指数位于底数的右上角,幂运算表示指数个底数相乘。如43=444一些基本的公式 2. 对数在数学中,对数是对求幂的逆运算,正如除法是乘法的倒数,反之亦然。因此,对于公式,有且仅当一些基
2022-03-08
计算机基础
#计算机基础 #数学基础
1234

搜索

Hexo Fluid
载入天数... 载入时分秒...
总访问量 次 总访客数 人
粤ICP备19152558号