C语言冒泡排序算法:实现每轮排序结果输出

本文将介绍如何使用C语言实现冒泡排序算法,并将每轮排序后的结果输出。

冒泡排序算法

冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,每次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。重复上述操作,直到没有元素需要交换,排序完成。

C语言实现

以下是使用C语言编写的冒泡排序算法实现,并可以输出每轮排序后的结果:

#include <stdio.h>

void bubbleSort(int arr[], int n, int k) {
    for (int i = 0; i < k; 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;
            }
        }
        // 输出第i轮排序后的结果
        printf('第%d轮排序后的结果: ', i+1);
        for (int l = 0; l < n; l++) {
            printf('%d ', arr[l]);
        }
        printf('\n');
    }
}

int main() {
    int n, k;
    printf('请输入数据个数和要输出的轮数:');
    scanf('%d %d', &n, &k);
    
    int arr[n];
    printf('请输入%d个数据:\n', n);
    for (int i = 0; i < n; i++) {
        scanf('%d', &arr[i]);
    }
    
    bubbleSort(arr, n, k);
    
    return 0;
}

代码解释

  1. bubbleSort 函数接收三个参数:
    • arr[]: 要排序的数组
    • n: 数组的大小
    • k: 要输出的轮数
  2. 外层循环 for (int i = 0; i < k; i++) 控制排序的轮数。
  3. 内层循环 for (int j = 0; j < n - i - 1; j++) 比较相邻元素并交换。
  4. 在每轮排序后,输出排序后的结果。
  5. main 函数中,首先读取用户输入的数据个数和要输出的轮数,然后读取数据并调用 bubbleSort 函数进行排序。

示例

输入:

6 3
3 5 1 2 8 6

输出:

第1轮排序后的结果: 3 1 2 5 6 8 
第2轮排序后的结果: 1 2 3 5 6 8 
第3轮排序后的结果: 1 2 3 5 6 8 

总结

本文介绍了使用C语言实现冒泡排序算法并输出每轮排序结果的方法。冒泡排序算法简单易懂,但效率较低,不适合处理大量数据。

C语言冒泡排序算法:实现每轮排序结果输出

原文地址: https://www.cveoy.top/t/topic/oOn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录