胡明亮361 2024-12-03 15:08 采纳率: 0%
浏览 48

输入n个数,使用选择排序算法从小到大排序,要求利用指针操作一维数组。

问题描述
输入n个数,使用选择排序算法从小到大排序,要求利用指针操作一维数组。

输入描述
第一个数表示个数n,接着再输入n个整数 n是一个不超过100的正整数

输出描述
n个从小到大排好顺序的整数

  • 写回答

2条回答 默认 最新

  • ITC小浪花、 2024-12-03 15:16
    关注
    
    #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;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月3日