c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

用C语言编程求中位数冒泡法

刘姿婷 2023-06-21编程经验
前言在这个问题中,我们需要使用C语言编写代码来实现中位数的求解。我们将使用冒泡排序算法来对给定数组进行排序,然后找到排序后数组的中间元素作为中位数。冒泡排序算法冒泡排序是一种简单的排序算法,它通过多次交换相邻元素的位置来将数组按

前言

在这个问题中,我们需要使用C语言编写代码来实现中位数的求解。我们将使用冒泡排序算法来对给定数组进行排序,然后找到排序后数组的中间元素作为中位数。

冒泡排序算法

冒泡排序是一种简单的排序算法,它通过多次交换相邻元素的位置来将数组按升序或降序排列。以下是冒泡排序算法的基本步骤:

  1. 从数组的第一个元素开始,依次比较每对相邻元素的大小。
  2. 如果前一个元素比后一个元素大(或小,根据升序或降序要求),则交换它们的位置。
  3. 重复步骤1和步骤2,直到所有元素都被比较。
  4. 重复以上步骤,但每次比较的元素个数减一,因为在每一轮比较后,最大(或最小)的元素都会被置于数组的末尾。

代码实现

下面是使用C语言编写的冒泡排序算法的代码:

#include 

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

int main() {
    int array[] = {4, 2, 9, 6, 5, 1, 8, 7, 3};
    int n = sizeof(array) / sizeof(array[0]);
    
    bubbleSort(array, n);
    
    float median;
    if (n % 2 == 0) {
        median = (array[n/2-1] + array[n/2]) / 2.0;
    } else {
        median = array[n/2];
    }
    
    printf("中位数为: %.2f\n", median);
    
    return 0;
}

代码解释

1. 首先,在main函数中定义了一个整型数组array和变量n,n表示数组的长度。

2. 然后,调用bubbleSort函数对数组进行排序。

3. 在排序完成后,计算中位数。如果数组长度为偶数,中位数为中间两个元素的平均值;如果数组长度为奇数,中位数为中间元素。

4. 最后,使用printf函数输出中位数。

通过以上代码,我们可以使用冒泡排序算法在C语言中求解中位数。