指针实现冒泡法排序(数组名做参数-传指针)
时间: 2024-06-18 21:04:36 浏览: 78
指针可以用来实现冒泡排序,具体步骤如下:
1. 定义一个指针,指向待排序数组的第一个元素;
2. 使用两层循环,外层循环控制循环次数,内层循环控制每次循环比较的次数;
3. 每次内层循环比较相邻的两个元素,如果前一个元素比后一个元素大,则交换它们的位置;
4. 内层循环结束后,最大的元素已经被排在了数组的末尾,因此下一次内层循环只需要比较前 n-1 个元素;
5. 外层循环结束后,数组就已经被排好序了。
以下是代码示例:
```
void bubbleSort(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;
}
}
}
}
```
相关问题
用指针法实现冒泡法数组排序
下面是用指针法实现冒泡法数组排序的代码示例:
```c++
#include<iostream>
using namespace std;
void bubbleSort(int* arr, int size) {
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - 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[] = { 5, 2, 4, 6, 1, 3 };
int size = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, size);
for (int i = 0; i < size; i++) {
cout << *(arr + i) << " ";
}
return 0;
}
```
解析:
1. `bubbleSort` 函数使用两个嵌套循环遍历数组,每次比较相邻的两个元素,如果前一个比后一个大,则交换它们的值;
2. `main` 函数定义了一个整型数组 `arr` 和数组的大小 `size`;
3. 调用 `bubbleSort` 函数对数组进行排序;
4. 使用循环遍历数组,输出排序后的结果。
在这个代码示例中,指针与数组紧密结合,通过指针操作数组元素的值。
指针实现冒泡法排序pta
好的,下面是指针实现冒泡法排序的代码:
```C
void bubble_sort(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;
}
}
}
}
```
在这个代码中,我们使用了指针来访问数组中的元素。首先,我们定义了一个指向整型的指针 `arr`,它指向了我们要排序的数组的第一个元素。然后,我们在循环中使用指针来访问数组中的元素,使用 `*(arr + i)` 的形式来访问第 `i` 个元素。在交换两个元素的值时,我们也使用了指针。
需要注意的是,我们在定义指针时需要指定指针所指向的数据类型,否则会出现编译错误。此外,指针也可以使用下标来访问数组中的元素,即 `arr[i]` 等价于 `*(arr + i)`。
阅读全文