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]

相关推荐
NAGNIP5 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
端平入洛12 小时前
delete又未完全delete
c++
颜酱14 小时前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub17 小时前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub17 小时前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub17 小时前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub17 小时前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub18 小时前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
祈安_18 小时前
C语言内存函数
c语言·后端
NAGNIP1 天前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试