当前位置: 首页 > news >正文

Makefile的用法及算法应用

编译的过程

 算法:解决特定问题的求解步骤

算法的设计

1.正确性

  • 语法正确
  • 合法的输入能得到合理的结果
  • 对非法的输入,给出满足要求的规格说明
  • 对精心选择,甚至刁难的测试都能正常运行,结果正确

2.可读性,便于交流,阅读,理解高内聚,低耦合

3.高效率(时间复杂度)

        时间复杂度:数据增长量与处理时间的关系

时间复杂度的计算规则

  1. 用常数1取代运行时间中的所有加法常数
  2. 在修改后的运行常数中,只保留最高阶项
  3. 如果最高阶存在且系数不是1,则去除这个项相乘的常数

排序算法:

1.思想

2.代码

3.时间复杂度

4.排序算法的稳定性:对于两个相同的数据,经过排序,两个相同数据的相对位置没有发生变化,这就是一个稳定的排序算法。

时间复杂度比较 

冒泡排序:相邻两两比较,优先排好最大值 

时间复杂度:O(n^2)

稳定性:稳定

选择排序:将待排位置的数据和后续的数据依次进行比较,将小的存放在待排位置,经过一趟,优先排好最小值

时间复杂度:O(n^2)

稳定性:不稳定

插入排序:将待排的元素,依次插入到一个有序序列中,确保插入后任然有序

时间复杂度:O(n^2)

稳定性:稳定

希尔排序:将待排的序列,按照增量分成若干个子系列,将子序列进行插入排序

时间复杂度:O(nlogn)<O<O(n^2)

稳定性:不稳定

快速排序:选定基准值,从两头分别和基准值比较,比基准值大的向后,比基准值小的向前,优先排好基准值

时间复杂度:O(nlogn)

稳定性:不稳定

http://www.lryc.cn/news/536339.html

相关文章:

  • 伯克利 CS61A 课堂笔记 08 —— Strings and Dictionaries
  • 机器学习 - 理解偏差-方差分解
  • Springboot引入(集成)Mybatis-plus
  • stm32 lwip tcp服务端频繁接收连接失效问题解决(tcp_recved)
  • java项目之基于SSM会议管理系统的设计与实现源码(ssm+mysql)
  • 腿足机器人之二- 运动控制概览
  • 【MySQL】基础篇
  • vscode环境搭建
  • tp whereOr用法2
  • 前端面试题目---页面抖动的原因、如何避免、如何解决
  • Spring Boot整合DeepSeek实现AI对话(API调用和本地部署)
  • DeepSeek 的 API 服务引入 WPS Office
  • 在Vue中,JavaScript数组常用方法,添加,插入,查找,删除等整理
  • 树莓派上 基于Opencv 实现人脸检测与人脸识别
  • Unity 接入Tripo 文生模型,图生模型
  • Redis常见数据结构
  • fps动作系统9:动画音频
  • 十四、GitLab 流水线自动化部署之 Windows Server
  • 数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例
  • mysql8.0使用MGR实现高可用与利用MySQL Router构建读写分离MGR集群
  • 基于Ubuntu2404搭建k8s-1.31集群
  • Golang的图形编程应用案例
  • PostgreSQL 错误代码 23505 : ERROR: duplicate key value violates unique constraint
  • 基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践
  • MySQL InnoDB引擎 MVCC
  • 服务器使用centos7.9操作系统前需要做的准备工作
  • 【Prometheus】prometheus结合cAdvisor监控docker容器运行状态,并且实现实时告警通知
  • 【Stable Diffusion模型测试】测试ControlNet,没有线稿图?
  • 算法刷题-数组系列-卡码网.区间和
  • Druid GetConnectionTimeoutException解决方案之一