题解 | #C++选择排序#

C++选择排序

https://www.nowcoder.com/practice/3b6175426e704c0b9461628b2278631b

#include <iostream>
using namespace std;

void sort(int* arr, int length);
void swap(int* a, int* b);
int getIndex(int* arr, int n, int length);

int main() {

    int arr[6] = { 0 };
    int len = sizeof(arr) / sizeof(int);

    for (int i = 0; i < len; i++) {
        cin >> arr[i];
    }

    sort(arr,6);
    
    for (int i = 0; i < len; i++) {
        cout << arr[i] << " ";
    }
    return 0;
}

void sort(int* arr, int length) {
    int max;
    int index;
    int i;
    for (index = 0; index < length; index++) {
        max = arr[index];
        int maxIndex = index;  // 记录最大元素的索引
        for (i = index; i < length; i++) {
            if (arr[i] < max) {
                max = arr[i];
                maxIndex = i;  // 更新最大元素的索引
            }
        }
        swap(&arr[index], &arr[maxIndex]);  // 使用最大元素的索引进行交换
    }
}

int getIndex(int* arr, int n, int length) {
    for (int i = 0; i < length; i++) {
        if (arr[i] == n)
            return i;
    }
    return -1;
}

void swap(int* a, int* b) {
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}

全部评论

相关推荐

团子请爱我一次_十月...:不是戈门,干哪来了,这就是java嘛
点赞 评论 收藏
分享
青春运维少年不会梦到...:实习大王
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务