指针实现冒泡法排序PTA哈尔滨师范大学
时间: 2023-11-02 12:13:50 浏览: 51
好的,下面是指针实现冒泡法排序的代码:
```c
#include <stdio.h>
void bubble_sort(int *arr, int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (*(arr + j) > *(arr + j + 1)) {
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int arr[] = {5, 4, 6, 3, 7, 2, 8, 1};
int len = sizeof(arr) / sizeof(arr[0]);
int i;
printf("排序前数组:");
for (i = 0; i < len; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
bubble_sort(arr, len);
printf("排序后数组:");
for (i = 0; i < len; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
return 0;
}
```
需要注意的是,在函数中使用指针访问数组元素时,需要使用 `*` 运算符进行解引用。同时,在 main 函数中也需要使用指针访问数组元素,可以使用 `arr[i]` 或者 `*(arr + i)` 两种方式。