欢迎来访VIP源码平台服务中心。

冒泡排序c语言代码

创始发布日期:2023-06-08 10:58 热度:35 ℃
点赞 收藏

冒泡排序是一种经典的排序算法,它的基本思路是重复地遍历待排序序列,每次比较相邻的两个元素,如果顺序不对就交换位置,直到整个序列有序为止。下面是冒泡排序的C语言代码实现:

```c

void bubbleSort(int arr[], int n) {

int i, j, temp;

for (i = 0; i < n - 1; i++) { // 外层循环控制遍历次数

for (j = 0; j < n - 1 - i; j++) { // 内层循环控制比较次数

if (arr[j] > arr[j + 1]) { // 如果前一个数大于后一个数,就交换位置

temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

}

```

在上面的代码中,变量arr表示待排序序列,n表示序列长度。外层循环控制遍历次数,每次遍历过后,待排序序列的最大值就会被移动到末尾,因此内层循环可以少遍历几次。内层循环控制比较次数,每次比较相邻的两个元素,如果顺序不对就交换位置。变量temp用来存储交换过程中需要交换的数。

冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1)。虽然冒泡排序的算法复杂度比较高,但由于其原理简单易懂,代码实现容易,在小规模数据的排序中仍有广泛应用。

下面是一个简单的示例,演示了如何使用冒泡排序对一个整型数组进行排序:

```c

#include

void bubbleSort(int arr[], int n);

int main() {

int arr[] = { 6, 3, 8, 2, 9, 1 };

int n = sizeof(arr) / sizeof(int);

int i;

printf("Before sorting:

");

for (i = 0; i < n; i++) {

printf("%d ", arr[i]);

}

printf("

");

bubbleSort(arr, n);

printf("After sorting:

");

for (i = 0; i < n; i++) {

printf("%d ", arr[i]);

}

printf("

");

return 0;

}

void bubbleSort(int arr[], int n) {

int i, j, temp;

for (i = 0; i < n - 1; i++) { // 外层循环控制遍历次数

for (j = 0; j < n - 1 - i; j++) { // 内层循环控制比较次数

if (arr[j] > arr[j + 1]) { // 如果前一个数大于后一个数,就交换位置

temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

}

}

```

输出结果如下:

```

Before sorting:

6 3 8 2 9 1

After sorting:

1 2 3 6 8 9

```

可以看到,经过排序后,数组元素已按升序排列。

分享:
评论0评论
游客
物美价廉多买多送
省时省力持续更新
优质模板宁缺毋滥
极速响应售后服务