Упорядочить массив (сортировка выбором) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Упорядочить массив, используя алгоритм сортировки выбором: отыскивается максимальный элемент и переносится в конец массива; затем этот метод применяется ко всем элементам , кроме последнего (он уже находится на своем окончательном месте), и т.д. Помогите пожалуйста в системе Си

Решение задачи: «Упорядочить массив (сортировка выбором)»

textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
 
#define SIZE 20
 
void InitMas(int *a, int n)
{
    int i;
 
    srand((unsigned)time(NULL));
    for (i = 0; i < n; i++) a[i] = rand();
}
 
void SelectionMethod_by_min(int *a, int n)   
{
    int i, j = 0, k = 0;
    int tmp;
    do
    {
        for (i = j; i < n; i++)
        if (a[i] < a[k]) { k = i; }
 
        tmp = a[j];
        a[j] = a[k];
        a[k] = tmp;
        j++;
        k = j;
 
    } while (j<n);
}
 
void SelectionMethod_by_max(int *a, int n)
{
    int i, j = n-1, k = 0;
    int tmp;
    do
    {
        for (i = 0; i <=j; i++)
        if (a[i] > a[k])     k = i;
 
        tmp = a[j]; a[j] = a[k]; a[k] = tmp;
        j--; k = j;
    } while (j >= 0);
}
 
void main()
{
    int a[SIZE];
    int i;
 
    InitMas(a, SIZE);
    for (i = 0; i < SIZE; i++) printf("%2d %5d\t", i, a[i]); printf("\n");
 
    SelectionMethod_by_max(a, SIZE);
    for (i = 0; i < SIZE; i++) printf("%2d %5d\t", i, a[i]); printf("\n");
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.25 из 5
Похожие ответы