Сортировка методом выбора - C (СИ)
Формулировка задачи:
Что-то не получается... Может быть сделаете замечания? Или посмотрите на строчки начиная с комента "метод сортировки"? В общем помогите вот результат:
Вывод беспорядочных элементов массива:
10 10 1 9 9
Вывод упорядоченных элементов массива:
1 10 9 10 9
#include <stdio.h> //#include <stdlib.h> #include <conio.h> #include <windows.h> #include <time.h> //#include <iostream> #define size 5 //using namespace std; int main(void) {SetConsoleOutputCP (1251); puts ("Selection sorting\n\n"); int array[size] = {0}, buffer = 0, min = 0, temp = 0; srand((unsigned)(time(0))); printf ("Вывод беспорядочных элементов массива:\n"); for(int z = 0; z < size; z++) //Заполнение массива случ. числами и их вывод { array[z] = rand () % 10 + 1; printf ("%d ", array[z]); }puts ("\0"); ////////////////////////////////////////////////////////////////////////////// for(int a = 0; a < size; a++) //Метод сортировки { min = array[a]; for(int b = 0; b < size - 1; b++) { if (min > array[b + 1]) { min = array[b + 1]; //Минимальный элемент temp = b + 1; //Номер заменяемой ячейки } buffer = array[b]; array[b] = array[temp]; array[temp] = buffer; } } ////////////////////////////////////////////////////////////////////////////// printf ("Вывод упорядоченных элементов массива:\n"); for (int d = 0; d < size; d++) //Вывод отсортированного массива { printf ("%d ", array[d]); } getch(); puts("\n\n"); }
Решение задачи: «Сортировка методом выбора»
textual
Листинг программы
#include <stdio.h> int main(void) { int arr[10] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; int i, j; for (i = 0; i < 10 - 1; i++) { int min = i; for (j = i + 1; j < 10; j++) if (arr[j] < arr[min]) min = j; if (min != i) { int tmp = arr[min]; arr[min] = arr[i]; arr[i] = tmp; } } for (i = 0; i < 10; i++) printf("%d ", arr[i]); putchar('\n'); return 0; }
Объяснение кода листинга программы
В этом коде реализована сортировка массива методом выбора. Список действий:
- Создаётся массив arr[10] с десятью элементами.
- Устанавливаются начальные значения переменных i и j равными 0.
- Цикл for запускается 9 раз, пока i меньше 10.
- Внутри цикла инициализируется переменная min значением i.
- Цикл for запускается 9 раз, пока j меньше 10.
- Внутри цикла сравниваются значения arr[j] и arr[min].
- Если arr[j] меньше arr[min], то min обновляется значением j.
- Если min не равно i, то значения arr[min] и arr[i] меняются местами с помощью временной переменной tmp.
- Цикл for завершается.
- Выводится отсортированный массив с помощью цикла for и функции printf.
- Возвращается 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д