用指针法实现冒泡法数组排序
时间: 2023-07-20 22:25:58 浏览: 65
冒泡排序是一种简单的排序算法,其基本思想是通过不断交换相邻的元素将最大或最小的元素冒泡到数组的顶端或底端。下面是用指针法实现冒泡排序的示例代码:
```c
#include <stdio.h>
void bubble_sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n - 1; 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, 4};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
printf("Original array: ");
for (i = 0; i < n; i++) {
printf("%d ", *(arr + i));
}
bubble_sort(arr, n);
printf("\nSorted array: ");
for (i = 0; i < n; i++) {
printf("%d ", *(arr + i));
}
return 0;
}
```
在这个程序中,我们使用了指针来访问数组元素,即用 `*(arr + i)` 替代了 `arr[i]`。这里需要注意的是,当我们对指针进行算术运算时,其结果是以指针类型为单位的。例如,`arr + i` 的结果是一个指向 `arr[i]` 的指针。因此,在程序中我们可以使用 `*(arr + j)` 和 `*(arr + j + 1)` 来访问相邻的元素,并进行交换操作。
运行程序,输出结果如下:
```
Original array: 5 3 8 6 4
Sorted array: 3 4 5 6 8
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)