Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

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

Напишите программу сортировки массива из N (1..10 000) целых чисел из
диапазона -1 000 000 до +1 000 000 по возрастанию. (Используйте
алгоритм сортировки выбором минимального элемента) на с++ самым легким способом

По дате
По рейтингу
Аватар пользователя
Мудрец
8мес

Код:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
 #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; 
}