算法菜鸟的烂笔头
时间:2022-07-26
本文章向大家介绍算法菜鸟的烂笔头,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
# 排序算法
# 冒泡排序
冒泡排序 |
平均 |
最好 |
最坏 |
辅助空间 |
稳定性 |
---|---|---|---|---|---|
时间复杂度 |
O(n^2) |
O(n) |
O(n^2) |
O(1) |
稳定 |
<?php
$arr = [5, 2, 9, 21, 2, 56, 34, 12, 90, 45];
$len = count($arr);
for($i = 0; $i < $len; $i++) {
for($j = 0; $j < $len - 1 - $i; $j++) {
if($arr[$j] > $arr[$j+1]) {
list($arr[$j+1], $arr[$j]) = [$arr[$j], $arr[$j+1]];
}
}
}
print_r($arr);
# 简单选择排序
简单选择排序 |
平均 |
最好 |
最坏 |
辅助空间 |
稳定性 |
---|---|---|---|---|---|
时间复杂度 |
O(n^2) |
O(n^2) |
O(n^2) |
O(1) |
不稳定 |
<?php
$arr = [5, 2, 9, 21, 2, 56, 34, 12, 90, 45];
$len = count($arr);
for($i = 0; $i < $len - 1; $i++) {
$min = $i;
for($j = $i + 1; $j < $len; $j++) {
if($arr[$j] < $arr[$min]) {
$min = $j;
}
}
if($min !== $i) {
list($arr[$min], $arr[$i]) = [$arr[$i], $arr[$min]];
}
}
print_r($arr);
# 直接插入排序
直接插入排序 |
平均 |
最好 |
最坏 |
辅助空间 |
稳定性 |
---|---|---|---|---|---|
时间复杂度 |
O(n^2) |
O(n) |
O(n^2) |
O(1) |
稳定 |
<?php
$arr = [5, 2, 9, 21, 2, 56, 34, 12, 90, 45];
$len = count($arr);
for($i = 0; $i < $len - 1; $i++) {
for($j = $i + 1; $j > 0; $j--) {
if($arr[$j] < $arr[$j - 1]) {
list($arr[$j], $arr[$j - 1]) = [$arr[$j - 1], $arr[$j]];
}
}
}
print_r($arr);
- 【Python环境】Python性能优化的20条建议
- 【Python环境】Python面试题汇总(一)
- 如何优雅的编写Dockerfile
- 【干货】找不到适合自己的编程书?我自己动手写了一个热门编程书搜索网站(附PDF书单)
- Docker监控方案(TIG)的研究与实践之Influxdb
- Docker监控方案(TIG)的研究与实践之Telegraf
- 【自然框架】之通用权限(九):权限的验证
- 【自然框架】之通用权限(八):权限到字段(列表、表单、查询)
- 【自然框架】之通用权限(七):权限到按钮
- 通过预测API窃取机器学习模型
- 【自然框架】 页面里的父类——把共用的东东都交给父类,让子类专注于其他。
- 血淋林的例子告诉你,为什么防“上传漏洞”要用白名单
- 关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵
- 【自然框架】 之 资源角色——列表过滤方案(思路篇)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Centos 7 备份MySQL/MongoDB并发邮件脚本
- Nginx启动报错:sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object
- 有赞美业店铺装修前端解决方案
- nginx部署react项目
- Golang 标准库 限流器 time/rate 设计与实现
- Node搭建简易的UDP服务器
- cordova run android 下载gradle报timeout
- How we redesign the NSQ-NSQ重塑之客户端
- [PHP] 使用php生成下载csv文件
- 深入浅出MySQL crash safe
- Cordova+React+Ant.design项目搭建
- ubuntu配置ZeroTier
- 有赞零售小票打印图片二值化方案
- 虚拟机中CentOS获取ip
- CentOS7 安装JDK8,tomcat8