Skip to content

ov9zx/massivi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 C++ Sorting Algorithms (Full Commented)

Решения К.Р. 2.1 и 2.2


1.

#include <iostream>
using namespace std;

int main() {
    // Выделяем память под массив из 7 элементов (тип short занимает 2 байта)
    short* a = new short[7];

    // --- ВВОД ДАННЫХ ---
    for (short i = 0; i < 7; i++) {
        cin >> a[i]; // Считываем числа с клавиатуры
    }

    // --- СОРТИРОВКА ---
    // Внешний цикл: количество проходов
    for (short i = 0; i < 7 - 1; i++) {
        // Внутренний цикл: идем С КОНЦА (справа налево)
        for (short j = 6; j > i; j--) {
            
            // Если текущий элемент меньше предыдущего (нарушен порядок)
            if (a[j] < a[j - 1]) {
                
                // Меняем их местами (алгоритм "стакан")
                short box = a[j];      // Сохраняем во временную переменную
                a[j] = a[j - 1];       // Перезаписываем
                a[j - 1] = box;        // Восстанавливаем
            }
        }
    }

    // --- ВЫВОД ---
    for (short j = 0; j < 7; j++) {
        cout << a[j] << " "; // Печать через пробел
    }

    delete[] a; // Обязательно очищаем память!
    return 0;
}

 #include <iostream>
using namespace std;

int main() {
    // Массив типа short (экономим память на данных)
    short* a = new short[7]; 
    
    // Используем unsigned char для счетчика i (экономим память на индексах)
    for (unsigned char i = 0; i < 7; i++) {
        cin >> a[i];
    }

    // --- СОРТИРОВКА ---
    // Проходим по всему массиву
    for (unsigned char i = 0; i < 7; i++) {

        // Представляем, что текущий элемент i - самый маленький
        unsigned char minIndex = i; 

        // Ищем реальный минимум в оставшейся части массива
        for (unsigned char j = i + 1; j < 7; j++) {
            // Если нашли число меньше текущего минимума
            if (a[j] < a[minIndex]) {
                minIndex = j; // Запоминаем его индекс
            }
        }

        // Если минимум нашелся не на позиции i, а дальше
        if (minIndex != i) { 
            // Меняем местами текущий элемент и найденный минимум
            short box = a[i];
            a[i] = a[minIndex];
            a[minIndex] = box;
        }
    }

    // Вывод результата
    for (unsigned char i = 0; i < 7; i++) {
        cout << a[i] << " ";
    }

    delete[] a; // Удаляем массив из памяти
    return 0;
}


#include <iostream>
using namespace std;

int main() {
    // Создаем динамический массив
    short* a = new short[7];
    
    // Ввод
    for (short i = 0; i < 7; i++) {
        cin >> a[i];
    }

    // --- СОРТИРОВКА ---
    // Начинаем со 2-го элемента (индекс 1), так как 1-й считается отсортированным
    for (short i = 1; i < 7; i++) {
        short key = a[i];  // Запоминаем карту, которую хотим вставить
        short j = i - 1;   // Смотрим на соседа слева

        // Пока мы не вышли за границы (j >= 0) И сосед больше нашей карты
        while (j >= 0 && a[j] > key) {
            a[j + 1] = a[j]; // Сдвигаем соседа вправо
            j--;             // Идем дальше влево (может стать -1!)
        }

        a[j + 1] = key; // Вставляем нашу карту в освободившееся место
    }

    // Вывод
    for (short i = 0; i < 7; i++) {
        cout << a[i] << " ";
    }

    delete[] a; // Чистим память
    return 0;
}

About

massivi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages