C++基础算法(插入排序)

1.插入排序

插入排序(Insertion Sort)介绍:
插入排序是一种简单直观的排序算法,它的工作原理类似于我们整理扑克牌的方式。

1.基本思想

插入排序的基本思想是:
1.将数组分为已排序和未排序两部分
2.每次从未排序部分取出第一个元素
3.将该元素插入到已排序部分的正确位置
4.重复这个过程直到所有元素都被排序

2.算法步骤

1.从第一个元素开始,该元素可以认为已经被排序
2.取出下一个元素,在已经排序的元素序列中从后向前扫描
3.如果该元素(已排序)大于新元素,将该元素移到下一位置
4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
5.将新元素插入到该位置后
6.重复步骤2~5

3.动图示例

在这里插入图片描述

4.C++代码实现:

#include <iostream>
using namespace std;void insertsort(int arr[],int sz)
{for(int i=1;i<sz;i++){int j = i;int tmp = arr[i];while(j>=1&&tmp<arr[j-1]){arr[j]=arr[j-1];j--;}arr[j]=tmp;}
}int main() {int arr[]={98,87,76,65,54,43,32,21};int sz = sizeof(arr)/sizeof(arr[0]);insertsort(arr,sz);for(int i=0;i<sz;i++){cout<<arr[i]<<" ";}return 0;
}

冒泡,插入,选择都是很基础的排序算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899687.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k近邻算法K-Nearest Neighbors(KNN)

算法核心 KNN算法的核心思想是“近朱者赤&#xff0c;近墨者黑”。对于一个待分类或预测的样本点&#xff0c;它会查找训练集中与其距离最近的K个样本点&#xff08;即“最近邻”&#xff09;。然后根据这K个最近邻的标签信息来对当前样本进行分类或回归。 在分类任务中&#…

【Feign】⭐️使用 openFeign 时传递 MultipartFile 类型的参数参考

&#x1f4a5;&#x1f4a5;✈️✈️欢迎阅读本文章❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;本篇文章阅读大约耗时三分钟。 ⛳️motto&#xff1a;不积跬步、无以千里 &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;&#x1f381;&#x1f381;&a…

zk基础—1.一致性原理和算法二

大纲 1.分布式系统特点 2.分布式系统的理论 3.两阶段提交Two-Phase Commit(2PC) 4.三阶段提交Three-Phase Commit(3PC) 5.Paxos岛的故事来对应ZooKeeper 6.Paxos算法推导过程 7.Paxos协议的核心思想 8.ZAB算法简述 6.Paxos算法推导过程 (1)Paxos的概念 (2)问题描述 …

216. 组合总和 III 回溯

目录 问题描述 解决思路 关键点 代码实现 代码解析 1. 初始化结果和路径 2. 深度优先搜索&#xff08;DFS&#xff09; 3. 遍历候选数字 4. 递归与回溯 示例分析 复杂度与优化 回溯算法三部曲 1. 路径选择&#xff1a;记录当前路径 2. 递归探索&#xff1a;进入下…

从AI大模型到MCP中台:构建下一代智能服务的核心架构

从AI大模型到MCP中台&#xff1a;构建下一代智能服务的核心架构 引言&#xff1a;AI大模型带来的服务重构革命 在ChatGPT掀起全球AI热潮的今天&#xff0c;大模型展现出的惊人能力正在重塑整个软件服务架构。但鲜为人知的是&#xff0c;真正决定AI服务成败的不仅是模型本身&a…

美团小程序 mtgsig1.2 拼好饭案例 分析 mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 美团网页、小程序、app全是指…

【大模型基础_毛玉仁】5.5 模型编辑应用

目录 5.5 模型编辑应用5.5.1 精准模型更新5.5.2 保护被遗忘权5.5.3 提升模型安全 5.5 模型编辑应用 大语言模型面临更新成本高、隐私保护难、安全风险大等问题。模型编辑技术&#xff1a; 通过细粒度修改预训练模型&#xff0c;避免从头训练&#xff0c;降低更新成本&#xff…

揭秘:父子组件之间的传递

基础知识 组件与组件之间有三大方面的知识点&#xff1a; 子组件通过props defineProps&#xff08;{}&#xff09;接收父组件传递到参数和方法&#xff1b;子组件可以通过定义 emit 事件&#xff0c;向父组件发送事件&#xff1b;父组件调用子组件通过defineExpose 导出的方法…

微前端实现方案对比Qiankun VS npm组件

架构层面&#xff1a; 1、Qiankun是典型的微前端架构&#xff0c;侧重构建多个独立前端应用协同工作的架构&#xff0c;主应用负责自用用的加载、卸载和通信&#xff1b;子应用不限制&#xff0c;可以是VUE、React等&#xff1b; 2、Qiankun松耦合&#xff0c;各个自应用独立…

可编辑160页PPT | 营销流程和管理数字化转型规划

荐言分享&#xff1a;随着技术的发展和消费者行为的变化&#xff0c;传统营销方式已难以满足现代企业的需求。企业需要借助数字化手段&#xff0c;对营销流程进行全面梳理和优化&#xff0c;提升营销活动的精准度和效率。同时&#xff0c;通过数字化营销管理&#xff0c;企业可…

Ecovadis认证需要准备哪些材料?

Ecovadis认证&#xff0c;作为全球领先的企业社会责任&#xff08;CSR&#xff09;评估平台&#xff0c;其准备材料的过程不仅需要详尽无遗&#xff0c;更要体现出企业在环境、社会、劳工和伦理四大方面的卓越实践与持续改进的决心。 首先&#xff0c;环境管理方面&#xff0c…

程序化广告行业(45/89):RTB竞价后续流程、结算规则及相关要点解读

程序化广告行业&#xff08;45/89&#xff09;&#xff1a;RTB竞价后续流程、结算规则及相关要点解读 大家好&#xff01;一直以来&#xff0c;我都希望能和大家一起在程序化广告这个领域不断探索、共同成长&#xff0c;这也是我写这系列博客的初衷。之前我们了解了程序化广告…

权重参数矩阵

目录 1. 权重参数矩阵的定义与作用 2. 权重矩阵的初始化与训练 3. 权重矩阵的解读与分析 (1) 可视化权重分布 (2) 统计指标分析 4. 权重矩阵的常见问题与优化 (1) 过拟合与欠拟合 (2) 梯度问题 (3) 权重对称性问题 5. 实际应用示例 案例1&#xff1a;全连接网络中的…

文法 2025/3/3

文法的定义 一个文法G是一个四元组&#xff1a;G(,,S,P) &#xff1a;一个非空有限的终极符号集合。它的每个元素称为终极符号或终极符&#xff0c;一般用小写字母表示。终极符号是一个语言不可再分的基本符号。 &#xff1a;一个非空有限的非终极符号集合。它的每个元素称为…

字符串复习

344:反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1&#xff1a; 输入&#xff1a;s ["…

【数据结构】算法效率的双刃剑:时间复杂度与空间复杂度

前言 在算法的世界里&#xff0c;效率是衡量算法优劣的关键标准。今天&#xff0c;就让我们深入探讨算法效率的两个核心维度&#xff1a;时间复杂度和空间复杂度&#xff0c;帮助你在算法设计的道路上更进一步。 一、算法效率&#xff1a;衡量算法好坏的关键 算法的效率主要…

Java基础-26-多态-认识多态

在Java编程中&#xff0c;多态&#xff08;Polymorphism&#xff09; 是面向对象编程的核心概念之一。通过多态&#xff0c;我们可以编写更加灵活、可扩展的代码。本文将详细介绍什么是多态、如何实现多态&#xff0c;并通过具体的例子来帮助你更好地理解这一重要概念。 一、什…

使用自定义的RTTI属性对对象进行流操作

由于历史原因&#xff0c;在借鉴某些特定出名的游戏引擎中&#xff0c;不知道当时的作者的意图和编写方式 特此做这篇文章。&#xff08;本文出自游戏编程精粹4 中 使用自定义的RTTI属性对对象进行流操作 文章&#xff09; 载入和 保存 关卡&#xff0c;并不是一件容易办到的事…

周总结aa

上周学习了Java中有关字符串的内容&#xff0c;与其有关的类和方法 学习了static表示静态的相关方法和类的使用。 学习了继承(extends) 多态&#xff08;有继承关系&#xff0c;有父类引用指向子类对象&#xff09; 有关包的知识&#xff0c;final关键字的使用&#xff0c;及有…

密码学基础——密码学相关概念

目录 1.1 密码系统&#xff08;Cryptosystem&#xff09; 1.2 密码编码学 1.3 密码分析学 1.4 基于算法保密 1.5 基于密钥保密 1.6密码系统的设计要求 1.7 单钥体制 1.8 双钥体制 密钥管理 1.1 密码系统&#xff08;Cryptosystem&#xff09; 也称为密码体制&#xff0…