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

C 语言_常见排序算法全解析

排序算法是计算机科学中的基础内容,本文将介绍 C 语言中几种常见的排序算法,包括实现代码、时间复杂度分析、适用场景和详细解析

一、冒泡排序(Bubble Sort)

基本思想:重复遍历数组,比较相邻元素,将较大元素交换到右侧。

代码实现

void bubbleSort(int arr[], int n) {for (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if (arr[j] > arr[j+1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}
}

详细图解
以数组 [5, 3, 8, 4, 6] 为例:

  1. 第一轮:比较 5 和 3,交换得 [3, 5, 8, 4, 6];比较 5 和 8,不交换;比较 8 和 4,交换得 [3, 5, 4, 8, 6];比较 8 和 6,交换得 [3, 5, 4, 6, 8]。最大元素 8 移到末尾。
  2. 第二轮:处理前 4 个元素 [3, 5, 4, 6],比较后得 [3, 4, 5, 6, 8]
  3. 第三轮:处理前 3 个元素 [3, 4, 5],数组已有序,但算法仍需继续。
  4. 第四轮:处理前 2 个元素 [3, 4],最终完成排序。
二、选择排序(Selection Sort)

基本思想:每次从未排序部分选择最小元素,放到已排序部分末尾。

代码实现

void selectionSort(int arr[], int n) {for (int i = 0; i < n-1; i++) {int min_idx = i;for (int j = i+1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}if (min_idx != i) {int temp = arr[i];arr[i] = arr[min_idx];arr[min_idx] = temp;
http://www.xdnf.cn/news/420481.html

相关文章:

  • Flannel vxlan模式的优缺点
  • 浅论3DGS溅射模型在VR眼镜上的应用
  • GITLAB跑gradle项目 不借助maven-publish直接上传到nexus私人仓库
  • CST软件对OPERACST软件联合仿真汽车无线充电站对人体的影响
  • 数字孪生实时监控汽车零部件工厂智能化巡检新范式
  • 防御保护-----第十二章:VPN概述
  • Java SE(12)——异常(Exception)
  • web 自动化之 PO 设计模式详解
  • Win11 + Visual Studio 2022 + FLTK 1.4.3 + Gmsh 4.13.1 源码编译指南
  • visual studio生成动态库DLL
  • IntelliJ IDEA给Controller、Service、Mapper不同文件设置不同的文件头注释模板、Velocity模板引擎
  • spring中的@SpringBootApplication注解详解
  • 5.13本日总结
  • Web 架构之负载均衡会话保持
  • 基于C#+SQL Server开发(WinForm)租房管理系统
  • 【C++】MSYS2:构建 C++ 开发环境
  • (vue)el-steps从别的页面跳转进来怎么实现和点击同样效果
  • day011-12-老男孩教育-用户管理与软件管理体系-习题
  • 18.Excel数据透视表:第1部分创建数据透视表
  • 2025java面试题整理
  • WebRTC技术EasyRTC嵌入式音视频通信SDK打造远程实时视频通话监控巡检解决方案
  • LabVIEW与PLC通讯程序S7.Net.dll
  • 国联股份卫多多与七腾机器人签署战略合作协议
  • 动态域名服务ddns怎么设置?如何使用路由器动态域名解析让外网访问内网?
  • 5.11作业
  • 5月12日作业
  • 文件同步2
  • 人事管理系统总结
  • 你对于JVM底层的理解
  • IBM BAW(原BPM升级版)使用教程第十四讲