C语言基础数组作业(冒泡算法)

cpp 复制代码
#include <stdio.h>

void bubbleSort(int arr[], int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                // 交换元素
                int temp = arr[j];//创建临时变量temp,保存arr[j]的值
                arr[j] = arr[j + 1];//将arr[j+1]的值赋给arr[j]
                arr[j + 1] = temp;    //将temp中保存的原arr[j]值赋给arr[j+1]
            }
        }
    }
}

void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int numbers[] = { 5, 3, 8, 1 };
    int size = sizeof(numbers) / sizeof(numbers[0]);

    printf("排序前: ");
    printArray(numbers, size);

    bubbleSort(numbers, size);

    printf("排序后: ");
    printArray(numbers, size);

    getchar();
    return 0;
}

完整执行过程示例

数组为:[5, 3, 8, 1],size = 4

第1轮 (i = 0):

  • j=0: 比较5和3 → 交换 → [3, 5, 8, 1]

  • j=1: 比较5和8 → 不交换 → [3, 5, 8, 1]

  • j=2: 比较8和1 → 交换 → [3, 5, 1, 8]

第2轮 (i = 1):

  • j=0: 比较3和5 → 不交换 → [3, 5, 1, 8]

  • j=1: 比较5和1 → 交换 → [3, 1, 5, 8]

第3轮 (i = 2):

  • j=0: 比较3和1 → 交换 → [1, 3, 5, 8]

// 初始数组: 5, 3, 8, 1

// 第1轮(i=0): 比较3次

// j=0: 5,3,8,1 → 5>3? 是 → 交换 → 3,5,8,1

// j=1: 3,5,8,1 → 5>8? 否 → 不变 → 3,5,8,1

// j=2: 3,5,8,1 → 8>1? 是 → 交换 → 3,5,1,8

// 第2轮(i=1): 比较2次

// j=0: 3,5,1,8 → 3>5? 否 → 不变 → 3,5,1,8

// j=1: 3,5,1,8 → 5>1? 是 → 交换 → 3,1,5,8

// 第3轮(i=2): 比较1次

// j=0: 3,1,5,8 → 3>1? 是 → 交换 → 1,3,5,8

相关推荐
江畔柳前堤34 分钟前
HBM:大语言模型时代的「算力血液」——从内存墙到带宽革命的深度拆解
服务器·人工智能·windows·目标检测·语言模型·自然语言处理·软件工程
Forever Nore1 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
萧瑟余晖1 小时前
Java深入解析篇十七之SpringCloud
java·开发语言
ttod_qzstudio2 小时前
Java 常用语法极简通关(五):类与对象——字段、方法、构造器、this 与 static
java·开发语言·python
罗西的思考2 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX3 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
萧瑟余晖3 小时前
Java深入解析篇十七之Spring Security
java·开发语言·spring
爱跳舞的烤冷面4 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号4 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽4 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法