c语言编程笔录

首页 > C语言 > c语言

c语言

c语言随机生成数字冒泡排序

更新时间:2023-06-21

前言

冒泡排序是一种简单的排序算法,它通过比较相邻的两个元素并交换它们的位置,使得最大(或最小)的元素逐渐"浮"到数列的顶端,因此被称为"冒泡"排序。随机生成数字后进行冒泡排序,可以使得数组元素按照升序排列。

生成随机数字

在C语言中,我们可以使用rand()函数生成随机数字。首先需要使用srand()函数来初始化随机数发生器。然后,使用rand()函数获取一个随机数,并对其取余操作来获得特定范围内的随机数。

#include 
#include 
#include 

void generateRandomArray(int array[], int length, int max) {
    srand(time(NULL)); // 初始化随机数发生器
    for (int i = 0; i < length; i++) {
        array[i] = rand() % max; // 生成0到max-1之间的随机数
    }
}

冒泡排序

冒泡排序通过比较相邻的两个元素,如果它们的顺序不正确,则交换它们。重复这个过程,直到整个数组有序为止。

void bubbleSort(int array[], int length) {
    for (int i = 0; i < length - 1; i++) {
        for (int j = 0; j < length - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                // 交换相邻的元素
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
}

完整代码示例

#include 
#include 
#include 

void generateRandomArray(int array[], int length, int max) {
    srand(time(NULL));
    for (int i = 0; i < length; i++) {
        array[i] = rand() % max;
    }
}

void bubbleSort(int array[], int length) {
    for (int i = 0; i < length - 1; i++) {
        for (int j = 0; j < length - 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[10];
    int length = sizeof(array) / sizeof(array[0]);
    int max = 100;

    generateRandomArray(array, length, max);

    printf("随机生成的数组:\n");
    for(int i = 0; i < length; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");

    bubbleSort(array, length);

    printf("排序后的数组:\n");
    for(int i = 0; i < length; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");

    return 0;
}

代码解释和规范

1. 首先,我们用srand(time(NULL))来初始化随机数发生器。time(NULL)函数返回当前时间的秒数,确保每次运行程序生成的随机数序列都是不同的。

2. generateRandomArray()函数接收一个整型数组、数组长度和生成随机数的最大值作为参数,使用rand()函数生成随机数并存储到数组中。

3. bubbleSort()函数接收一个整型数组和数组长度作为参数,通过嵌套的for循环,比较相邻的元素并进行交换,直到整个数组有序。

4. 在main()函数中,我们声明了一个大小为10的整型数组,并指定最大随机数为100。首先调用generateRandomArray()函数生成随机数组,然后调用bubbleSort()函数对数组进行排序,并输出结果。

以上就是使用C语言随机生成数字并进行冒泡排序的代码。通过调用generateRandomArray()生成随机数组,再调用bubbleSort()函数进行排序。