c语言指针完成冒泡排序
时间: 2024-08-09 14:01:32 浏览: 81
在C语言中,指针是一种可以存储内存地址的数据类型,我们常常通过指针来操作内存中的数据。关于冒泡排序算法的基本思想就是不断地遍历数组元素,并比较相邻两个元素的大小,如果前面的数大于后面的数,则交换这两个数的位置。
下面是使用指针完成冒泡排序的示例代码:
```c
#include <stdio.h>
void bubbleSort(int *arr, int n) {
for (int i = 0; i < n - 1; ++i) {
// 遍历所有未排序元素
for (int j = 0; j < n - i - 1; ++j) {
// 如果当前元素比下一个元素大则交换位置
if (*(arr + j) > *(arr + j + 1)) {
int temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr);
printf("原始数组:\n");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
bubbleSort(arr, n);
printf("排序后的数组:\n");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这段代码中,`bubbleSort` 函数接受一个整型数组 `arr` 和数组长度 `n` 的引用作为参数。然后,它遍历整个数组,每次内层循环中,如果找到更大的元素就将它们交换过来。由于最大的元素会逐渐“冒”到数组的一端,这个过程在每一趟排序中都会移动最大的未排序元素到最后一个位置上。
关于如何使用指针进行冒泡排序的更多细节包括:
- 指针的使用使得可以直接修改原数组内容而不需要创建额外的数组空间;
- 直接访问和修改内存地址可以提高性能,尤其是在大型数组上;
- 使用指针可以更高效地处理不同类型的数据结构,比如链表等。
---
阅读全文