当前位置: 首页 > 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;

相关文章:

  • 嵌入式软件--stm32 DAY7 I2C通讯上
  • jenkins流水线常规配置教程!
  • aardio - 将文本生成CSS格式显示
  • 汽车功能安全--TC3xx MBIST设计要点
  • 2025高质量数据集实践指南
  • 22.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--增加公共代码
  • 裸金属服务器 VS 传统物理机
  • c++STL-list的使用和迭代器
  • 基于Session实现短信登录全流程详解
  • Windows下安装mysql8.0
  • 【Tauri2】044 移动端Android的初步配置
  • React Native告别图标体积大手动更换慢的噩梦:让图标更新像修改文字一样简单
  • STM32 HAL驱动程序 内部Flash
  • 基于深度学习的工业OCR数字识别系统架构解析
  • Linux的文件查找与压缩
  • BGP实验练习2
  • spring中的@Async注解详解
  • 2025年PMP 学习十 -第8章 项目质量管理(8.1,8.2)
  • 内存泄漏与OOM崩溃根治方案:JVM与原生内存池差异化排查手册
  • 【登录认证】JWT令牌
  • 观察|“双雄”格局下电池制造商如何生存:加码不同技术、抢滩新赛道
  • 习近平出席中拉论坛第四届部长级会议开幕式并发表主旨讲话
  • 观众走入剧院空间,人艺之友一起“再造时光”
  • 中国科学院院士徐春明不再担任山东石油化工学院校长
  • 社恐也能嗨起来,《孤独摇滚》千人观影齐舞荧光棒
  • 要更加冷静地看待“东升西降”的判断