若有数组arr[10] = {36,1,26,40,32,23,98,77,2,25},写一个bubbleSort函数,通过一个指针数组aptr[10]对arr进行排序。要求不能改变arr数组顺序,最后把arr和aptr的所有元素输出并对比
时间: 2024-05-05 09:21:11 浏览: 55
下面是基于指针数组的冒泡排序实现:
```c++
#include <iostream>
using namespace std;
void bubbleSort(int *arr, int *aptr[])
{
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9 - i; j++) {
if (*(aptr[j]) > *(aptr[j+1])) {
swap(aptr[j], aptr[j+1]);
}
}
}
}
int main()
{
int arr[10] = {36,1,26,40,32,23,98,77,2,25};
int *aptr[10];
for (int i = 0; i < 10; i++) {
aptr[i] = &arr[i];
}
bubbleSort(arr, aptr);
cout << "arr: ";
for (int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
cout << endl;
cout << "aptr: ";
for (int i = 0; i < 10; i++) {
cout << *(aptr[i]) << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
arr: 36 1 26 40 32 23 98 77 2 25
aptr: 1 2 23 25 26 32 36 40 77 98
```
可以看到,指针数组aptr的元素已经按照arr数组的值从小到大排序。同时,arr数组的值并没有改变。
阅读全文