Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с написанием программ по массивам срочно сортировки массива из N (1..10 000) целых чисел

Аврора Цветаева Ученик (87), на голосовании 1 неделю назад
Напишите программу сортировки массива из N (1..10 000) целых чисел из
диапазона -1 000 000 до +1 000 000 по возрастанию. (Используйте
алгоритм сортировки выбором минимального элемента) на с++ самым легким способом
Голосование за лучший ответ
Вертолётов 625 Мудрец (14069) 1 месяц назад
Код:
 #include <iostream> 
#include <vector>

void selectionSort(std::vector<int>& arr) {
int n = arr.size();
for (int i = 0; i < n - 1; ++i) {
// Предполагаем, что минимальный элемент в неотсортированной части — первый
int minIndex = i;
// Проходим по неотсортированной части массива
for (int j = i + 1; j < n; ++j) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// Меняем местами найденный минимальный элемент с первым элементом неотсортированной части
if (minIndex != i) {
std::swap(arr[i], arr[minIndex]);
}
}
}

int main() {
int N;
std::cout << "Введите количество элементов в массиве: ";
std::cin >> N;

if (N < 1 || N > 10000) {
std::cerr << "Количество элементов должно быть от 1 до 10000." << std::endl;
return 1;
}

std::vector<int> arr(N);
std::cout << "Введите " << N << " целых чисел: ";
for (int i = 0; i < N; ++i) {
std::cin >> arr[i];
}

selectionSort(arr);

std::cout << "Отсортированный массив: ";
for (int num : arr) {
std::cout << num << " ";
}
std::cout << std::endl;

return 0;
}
Похожие вопросы