用C语言数据结构写冒泡排序,要求用到change
时间: 2024-09-15 16:09:20 浏览: 30
在C语言中,冒泡排序是一种简单的排序算法,它重复地遍历待排序数组,比较相邻元素并交换位置,如果它们的顺序错误就交换过来,直到整个序列都有序为止。这个过程就像气泡不断上升一样,因此得名“冒泡排序”。这里是一个基本的冒泡排序实现,使用了`change`函数来进行元素的交换:
```c
#include <stdio.h>
// 定义交换两个整数的函数
void change(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 冒泡排序函数
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n -1次,因为最后一次会自动排序完成
for (int j = 0; j < n - i - 1; j++) { // 每次遍历内部减去已排序的元素数量
if (arr[j] > arr[j + 1]) {
// 如果当前元素大于下一个元素,则交换
change(&arr[j], &arr[j + 1]);
}
}
}
}
// 测试冒泡排序
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Before sorting:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
bubble_sort(arr, n);
printf("\nAfter sorting:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,`change`函数就是用于交换元素的辅助函数,`bubble_sort`则是主排序函数。运行这个程序,你会看到未排序和排序后的数组。