排序算法
冒泡排序原理冒泡排序是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢 “浮” 到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名 “冒泡排序”。 步骤 比较相邻的元素:如果第一个比第二个大,就把它们两个交换 对每一对相邻元素作同样的工作:从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数 针对所有的元素重复以上的步骤:除了最后一个 持续每次对越来越少的元素重复上面的步骤:直到没有任何一对数字需要比较 复杂度时间复杂度 最坏情况:O(n^2) 平均情况:O(n^2) 最好情况:O(n) 空间复杂度 原地排序:O(1) 稳定性 稳定排序:冒泡排序在排序过程中,如果遇到相同的元素,不会改变它们的相对位置,所以是稳定的 适用场景 数据量较小 输入数据基本有序 对内存要求不高 代码1234567891011121314151617181920212...
Redis
Redis完全指南目录 Redis简介 Redis核心特性 Redis数据类型 String Hash List Set Sorted Set Bitmap HyperLogLog Geospatial Redis持久化 RDB持久化 AOF持久化 持久化策略选择 Redis事务 事务相关命令 事务执行流程 事务中的错误处理 ACID特性 WATCH命令与乐观锁 Redis分布式锁 基本实现 Redlock算法 Redis发布订阅 相关命令 发布订阅特点 应用场景 Redis高级特性 Lua脚本 管道(Pipeline) 内存优化 性能优化 高可用方案 Redis最佳实践 键值设计 命令使用 安全配置 监控指标 参考资料 Redis 简介Redis(Remote Dictionary Server)是一个开源(BSD许可)的内存数据结构存储系统,可用作数据库、缓存和消息中间件。它支持多种数据类型,具有内置的复制、Lua脚本、LRU驱动事件、事务以及不同级别的磁盘持久化功能,并通过Redis Sentinel和Redis Cluster提供高可用性服务...
mysql面试题
什么是SQL?结构化查询语言 (Structured Query Language) 简称 SQL,是一种数据库查询语言。作用:用于存取数据、查询、更新和管理关系数据库系统。 MySQL三大范式第一范式(1NF)要求数据库表中的每一列都是不可分割的拆分的原子数据项.即表中的每个字段值都是不可再分的最小数据单位。这一范式的核心目的是确保数据的原子性,避免数据冗余和复杂的数据结构,从而提高数据的一致性和完整性。 数据原子性:在1NF中,每个字段只能包含单一值,不能包含多个值。例如,在一个学生信息表中,学生的姓名、年龄、性别等字段都应是独立的列,不能将多个学生的姓名存储在同一列中。 消除重复组:1NF要求消除表中的重复组,即将具有相同属性的数据拆分为多个独立的列。例如,在一个订单表中,不能将多个商品信息存储在同一列中,而应将每个商品信息拆分为单独的列,如商品名称、商品数量、商品价格等。 数据完整性:1NF要求表中的每个字段都有明确的语义和数据类型,确保数据的完整性和准确性。例如,在一个员工信息表中,员工的身份证号字段应为固定长度的数字类型,不能包含其他非数字字符。 第二范式(2NF...
git命令速查
Config1234git config --global user.name "name"git config --global user.email "email"# 查看git config --global --list init1git init clone1git clone <repository-url> add1234git add <file-name># 添加所有更改文件git add . commit1git commit -m "message" 合并12git rebase -igit merge --squash stash12345678910111213git stash -m "message"# 查看git stash list# 应用git stash apply# 应用并删除最新一个git stash pop# 删除最新一个git stash drop# 删除指定暂存的记录 $ git stash drop <stash@...
Beego 实现CRUD
models/user.go 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109package controllersimport ( beego "github.com/beego/beego/v2/server/web" "myproject/models" "strconv")type UserController struct { beego.Controller}// 获取用户信息func (c *UserController) Read() { id := c.Ctx.Input.Para...