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()函数进行排序。