使用一维指向数组元素的指针作为函数参数,编写冒泡法、选择法实现从小到大的排序
时间: 2023-06-08 09:07:57 浏览: 79
好的,让我解答你的问题。
冒泡排序可以使用以下 C 语言函数实现:
```
void bubbleSort(int *arr, int size) {
int i, j, temp;
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - i - 1; j++) {
if (*(arr + j) > *(arr + j + 1)) {
temp = *(arr + j);
*(arr + j) = *(arr + j + 1);
*(arr + j + 1) = temp;
}
}
}
}
```
而选择排序可以使用以下函数实现:
```
void selectionSort(int *arr, int size) {
int i, j, min, temp;
for (i = 0; i < size - 1; i++) {
min = i;
for (j = i + 1; j < size; j++) {
if (*(arr + j) < *(arr + min)) {
min = j;
}
}
temp = *(arr + i);
*(arr + i) = *(arr + min);
*(arr + min) = temp;
}
}
```
在这两个函数中,都使用了一维指向数组元素的指针作为函数参数,并通过指针来访问数组中的元素。在这里,`*(arr+i)` 的意思是访问 `arr` 指向的内存地址加上 `i` 的偏移量,得到数组中索引为 `i` 的元素的值。
希望这个回答能够帮到你,如果你还有什么问题可以继续问我。
阅读全文