用指针写冒泡排序
时间: 2023-07-10 20:13:08 浏览: 86
好的,以下是用指针写的冒泡排序的示例代码:
```c
#include <stdio.h>
void bubble_sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n; i++) {
for (j = 0; j < n - 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, 3, 8, 6, 2, 7, 1, 4};
int n = sizeof(arr) / sizeof(int);
int *p = arr;
bubble_sort(p, n);
printf("排序后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", *(p + i));
}
return 0;
}
```
其中,`bubble_sort` 函数用来进行冒泡排序,`arr` 是指向数组的指针,`n` 是数组的长度,`*(arr + i)` 可以替换成 `arr[i]`,两者等价。在 `main` 函数中,首先定义了一个整型数组 `arr`,然后计算出其长度 `n`,接着将数组的首地址赋给指针 `p`,最后调用 `bubble_sort` 函数进行排序。排序完成后,遍历数组并输出。