Рубрики

Программа C для выбора сортировки

Алгоритм сортировки выбора сортирует массив путем многократного нахождения минимального элемента (с учетом возрастания) из несортированной части и положить его в начале. Алгоритм поддерживает два подмассива в данном массиве.

1) Подмассив, который уже отсортирован.
2) Оставшийся подмассив, который не отсортирован.

На каждой итерации сортировки выбора минимальный элемент (с учетом возрастающего порядка) из несортированного подмассива выбирается и перемещается в отсортированный подмассив.

// C программа для реализации селекционной сортировки
#include <stdio.h>

  

void swap(int *xp, int *yp)

{

    int temp = *xp;

    *xp = *yp;

    *yp = temp;

}

  

void selectionSort(int arr[], int n)

{

    int i, j, min_idx;

  

    // Один за другим передвигаем границу несортированного подмассива

    for (i = 0; i < n-1; i++)

    {

        // Находим минимальный элемент в несортированном массиве

        min_idx = i;

        for (j = i+1; j < n; j++)

          if (arr[j] < arr[min_idx])

            min_idx = j;

  

        // Меняем найденный минимальный элемент на первый элемент

        swap(&arr[min_idx], &arr[i]);

    }

}

  
/ * Функция для печати массива * /

void printArray(int arr[], int size)

{

    int i;

    for (i=0; i < size; i++)

        printf("%d ", arr[i]);

    printf("\n");

}

  
// Программа драйвера для проверки вышеуказанных функций

int main()

{

    int arr[] = {64, 25, 12, 22, 11};

    int n = sizeof(arr)/sizeof(arr[0]);

    selectionSort(arr, n);

    printf("Sorted array: \n");

    printArray(arr, n);

    return 0;

}

Пожалуйста, обратитесь к полной статье по сортировке выбора для более подробной информации!

Рекомендуемые посты:

Программа C для выбора сортировки

0.00 (0%) 0 votes