题解 | #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;
}

查看12道真题和解析