问题描述
输入n个数,使用选择排序算法从小到大排序,要求利用指针操作一维数组。
输入描述
第一个数表示个数n,接着再输入n个整数 n是一个不超过100的正整数
输出描述
n个从小到大排好顺序的整数
问题描述
输入n个数,使用选择排序算法从小到大排序,要求利用指针操作一维数组。
输入描述
第一个数表示个数n,接着再输入n个整数 n是一个不超过100的正整数
输出描述
n个从小到大排好顺序的整数
#include <iostream>
using namespace std;
// 选择排序函数,使用指针操作数组
void selectionSort(int* arr, int n) {
for (int i = 0; i < n - 1; i++) {
int* min_ptr = arr + i; // 指向当前最小元素的指针
for (int j = i + 1; j < n; j++) {
if (*(arr + j) < *min_ptr) { // 比较指针指向的值
min_ptr = arr + j;
}
}
// 交换当前元素和最小元素的位置
if (min_ptr != arr + i) {
int temp = *min_ptr;
*min_ptr = *(arr + i);
*(arr + i) = temp;
}
}
}
int main() {
int n;
cout << "请输入整数个数:";
cin >> n;
int arr[100]; // 最大支持100个元素
cout << "请输入 " << n << " 个整数:" << endl;
for (int i = 0; i < n; i++) {
cin >> *(arr + i); // 使用指针输入数组元素
}
selectionSort(arr, n); // 调用选择排序函数
cout << "排序后的数组:" << endl;
for (int i = 0; i < n; i++) {
cout << *(arr + i) << " "; // 使用指针输出排序后的数组元素
}
cout << endl;
return 0;
}