[Źródło: https://icons.com/icon/40670/c-programming]
Program:
Zasada działania tego algorytmu jest dosyć prosta. Przechodzimy przez wszystkie elementy tablicy tak aby znaleźć kolejne najmniejsze elementy, które wprowadzamy w kolejne miejsca w tabeli.
- uint8_t selectionSort(uint16_t *list, uint16_t startPosition, uint16_t tableSize)
- {
- uint16_t firstSearch = 0;
- uint16_t secondSearch = 0;
- uint16_t minimumSearchVal = 0;
- if (startPosition > tableSize)
- {
- return 1;
- }
- for (firstSearch = startPosition; firstSearch < tableSize - 1; firstSearch++)
- {
- minimumSearchVal = firstSearch;
- for (secondSearch = firstSearch + 1; secondSearch < tableSize; secondSearch++)
- {
- if (list[secondSearch] < list[minimumSearchVal])
- {
- minimumSearchVal = secondSearch;
- }
- }
- changeElementPlaces(&list[minimumSearchVal], &list[firstSearch]);
- }
- return 0;
- }
- static void changeElementPlaces(uint16_t *xp, uint16_t *yp)
- {
- uint16_t temp = *xp;
- *xp = *yp;
- *yp = temp;
- }
Pliki do postu można pobrać z dysku Google pod tym linkiem.