Сортирање низа селекцијом (Selection Sort)

Један од задатака са којима се често програмери срећу је сортирање елемената низа, односно уређивање елемената низа по задатом критеријуму. Најчешће су елементи низа цели или реални бројеви које треба поређати по растућем редоследу (од мањег ка већем) или по опадајућем редоследу (од већег ка мањем).

Постоји мноштво алгоритама помоћу којих се елементи низа могу сортирати, а један од најједноставнијих и једини који ћемо радити у I разреду је Selection Sort алгоритам.

Најмањи елемент низа постављамо на прву позицију, замењујући место са елементом који се ту налазио. Потом други најмањи елемент премештамо на другу позицију замењујући место са елементом који је био други. Поступак понављамо све док се низ не сортира од најмањег до највећег елемента, као у видео запису изнад.

Алгоритам би изгледао овако:

selectionalg

 

Кратко и функционално решење можемо представити оваквим алгоритмом:

selection

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
main()
{
	int i, j, t, n, A[100];
	printf("KOLIKO NIZ IMA ELEMENATA: ");
	scanf("%d", &n);
	printf("\nUNESI ELEMENTE NIZA:\n");
	for (i = 0; i < n; i++)
	{
		printf("Unesi A[%d]: ", i);
		scanf("%d", &A[i]);
	}

	for (i = 0; i < n - 1; i++)
		for (j = i + 1; j < n; j++)
			if (A[i] > A[j])
			{
				t = A[i];
				A[i] = A[j];
				A[j] = t;
			}

	printf("\nSORTIRANI NIZ:\n");
	for (i = 0; i < n; i++)
		printf("A[%d] = %d\n", i, A[i]);
}