冒泡排序算法c源代码数据结构
时间: 2023-06-30 11:04:28 浏览: 119
以下是冒泡排序算法的C语言代码实现:
```c
#include <stdio.h>
void bubble_sort(int arr[], int size) {
int i, j;
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - 1 - i; 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, 8, 3, 1, 6};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Before sorting:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, size);
printf("After sorting:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
冒泡排序算法的基本思想是每次从数组的第一个元素开始,比较相邻的两个元素,如果前者大于后者,则交换它们的位置。这样做一轮之后,最大的元素就会被交换到最后一个位置。接着重复上述过程,除了最后一个元素,每次都将未排序的部分中最大的元素移动到最后一个位置。时间复杂度为O(n^2)。
阅读全文