C++使用指针编写一个用于对整形序列进行排序的函数排序方法使用选择排序
时间: 2024-10-29 22:10:55 浏览: 33
在C++中,使用指针可以简化选择排序的实现,因为我们可以直接操作数组的内存地址。这里是一个使用指针的版本选择排序函数示例:
```cpp
#include <iostream>
// 定义选择排序函数,传入数组首地址、大小以及指向整型变量的指针
void selectionSort(int* arr, int size) {
for (int i = 0; i < size - 1; ++i) {
int minIndex = i;
// 使用指针遍历未排序部分
for (int* p = &arr[i+1]; p < &arr[size]; ++p) {
if (*p < *arr[minIndex]) {
minIndex = *p - arr;
}
}
// 使用指针交换元素
std::swap(arr[minIndex], arr[i]);
}
}
int main() {
int nums[] = {5, 2, 9, 1, 5, 6};
int size = sizeof(nums) / sizeof(nums[0]);
std::cout << "Original array:\n";
for (int num : nums) {
std::cout << num << " ";
}
std::cout << "\n";
selectionSort(nums, size);
std::cout << "Sorted array using Selection Sort:\n";
for (int num : nums) {
std::cout << num << " ";
}
return 0;
}
```
在这个例子中,我们通过`*p`来获取数组元素的值,并通过`arr[minIndex]`来修改数组元素的位置。注意这里使用了指针算术,将元素索引转换成偏移量。
阅读全文