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

Day8C语言前期阶段练习算法之插入排序

插入排序的通俗理解

想象你在打扑克牌时整理手牌的过程:

  1. 左手是已排序的牌,右手拿新牌

  2. 从第二张牌开始(第一张牌默认已排序)

  3. 拿起一张新牌,与左手已排序的牌从右往左比较

  4. 找到合适的位置插入新牌

  5. 重复这个过程直到所有牌都排序完成

#include <stdio.h>// 插入排序函数
void insertionSort(int arr[], int n) 
{int i, j, key;// 从第二个元素开始遍历for (i = 1; i < n; i++) {// 保存当前要插入的元素key = arr[i];// j指向当前元素的前一个位置j = i - 1;// 将比key大的元素都向后移动一位// 为key腾出插入位置while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];  // 元素后移j = j - 1;            // 继续向前比较}// 将key插入到正确位置arr[j + 1] = key;// 打印每轮排序后的数组状态printf("第%d轮排序后: ", i);for (int k = 0; k < n; k++) {printf("%d ", arr[k]);}printf("\n");}
}// 打印数组函数
void printArray(int arr[], int n){for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");
}int main() 
{int arr[] = {64, 34, 25, 12, 22, 11, 90};int n = sizeof(arr) / sizeof(arr[0]);printf("排序前的数组: ");printArray(arr, n);printf("\n");// 调用插入排序insertionSort(arr, n);printf("\n排序后的数组: ");printArray(arr, n);return 0;
}

http://www.dtcms.com/a/515314.html

相关文章:

  • 计算机算法性能详解
  • 建设银行租房网站6网站建设的用例图
  • 国外黄冈网站推广软件有哪些网站建设销售员工作内容
  • Java 大视界 -- Java 大数据在智能医疗远程护理与患者健康管理中的应用与前景
  • 江苏省义务教育标准化建设网站北京住房和城乡建设局门户网站
  • 记2025羊城杯部分题目的解题思路
  • 198种组合算法+优化RF随机森林+SHAP分析+新数据预测!机器学习可解释分析,强烈安利,粉丝必备!
  • 2025第二十二届中国国际半导体博览会(IC CHINA 2025)亮点分析!
  • 「PPG信号处理——(1)基于多模态融合与智能决策的PPG运动伪影分层去除方法」2025年10月22日
  • 阿瓦隆A15 166T:如何突破SHA-256算法的瓶颈?
  • 【Qt开发】多元素类控件(三)-> QTreeWidget
  • MOSHELL (11) : MOSHELL 中的UNIX
  • 安洵杯2019
  • 离线环境下运行 Docker 容器编排指南
  • mapbox进阶,地图添加渐变背景色
  • Tornado + Motor 微服务架构(Docker + 测试 + Kubernetes)
  • YLOLv4
  • 实验室入门——ubuntu20.04安装ros和ros2全流程
  • uTools 最新版优化macOS 26 高 GPU 占用问题
  • wordpress如何建站拓普建站推广
  • 建筑智库免费网站商城网站开发报
  • 从埋点到用户行为分析:ClkLog 如何帮助企业读懂用户
  • 【Q-dir】QDir_x64窗口配合Mouselnc实现上一步
  • 手机网站备案密码找回的方法枣庄专业做网站
  • Oracle Database 19c 服务端(19.3)下载与安装
  • 如何使用 vxe-table 实现全键盘操作,按键切换复选框单选框的选中状态
  • AI IDE 编辑器产品销售策略:从功能宣讲到赋能用户盈利的范式转变[特殊字符]
  • K8S知识点--Node和NameSpace
  • 【开发AI】Windows安装和使用Milvus的保姆级教程
  • 【完整源码+数据集+部署教程】【零售和消费品&存货】食品分类检测系统源码&数据集全套:改进yolo11-RepNCSPELAN_CAA