c语言的冒泡排序法
冒泡排序法是一种基本的排序算法,它通过多次交换相邻的元素来实现排序。以下是C语言的冒泡排序法实现:
#include <stdio.h>
void bubble_sort(int arr[], int len)
{
int i, j;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[] = { 5, 2, 4, 6, 1, 3 };
int len = sizeof(arr) / sizeof(int);
bubble_sort(arr, len);
int i;
for (i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
在这个实现中,我们首先定义了一个函数bubble_sort,它接受一个整数数组arr和数组的长度len作为参数。在函数内部,我们使用两个嵌套的循环来遍历数组并比较相邻的元素。如果前面的元素比后面的元素大,我们就交换它们的位置。这样,每次内循环结束后,数组中最大的元素就会被移到最后一个位置。外循环控制了内循环的遍历次数,因为每次内循环结束后,最后一个元素已经是最大的了,所以我们可以将它排除在外。
在main函数中,我们定义了一个整数数组arr,并使用sizeof运算符和sizeof(int)计算出数组的长度。然后,我们调用bubble_sort函数来对数组进行排序,并使用一个循环打印出排序后的结果。
注意,这个实现没有对排序算法进行优化,所以它的时间复杂度是O(n^2),如果数据量很大,它的效率会比较低。实际应用中,我们可以使用更高效的排序算法来处理大规模数据。
原文地址: https://www.cveoy.top/t/topic/bwq0 著作权归作者所有。请勿转载和采集!