Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Selection Sort - algorytm sortowania
- // przez proste wybieranie na przykladzie tablic.
- #include <stdio.h>
- // Dlugosc tablicy.
- #define TAB_LENGTH 10
- // Lista prototypów funkcji.
- void SwapElements(int* elementA,int* elementB);
- int IndexOfMinimum(int tablica[], int wielkosc, int startingPoint);
- void SelectionSort(int tablica[], int wielkosc);
- void DisplayArray(int tablica[], int wielkosc);
- // Funkcja main.
- int main( void )
- {
- int tablica[TAB_LENGTH];
- printf("wypelnij tablice %d elementami.",TAB_LENGTH);
- for( int i = 0; i < TAB_LENGTH; i++)
- {
- printf("podaj kolejna liczbe:");
- scanf("%d",&tablica[i]);
- }
- // Przed sortowaniem.
- DisplayArray(tablica,TAB_LENGTH);
- // Po sortowaniu.
- SelectionSort(tablica,TAB_LENGTH);
- printf("\n");
- DisplayArray(tablica,TAB_LENGTH);
- int a; scanf("%d",&a);
- return 0;
- }
- // Funkcja sortujaca dowolna tablice typu int.
- void SelectionSort(int tablica[], int wielkosc)
- {
- for(int i = 0; i < wielkosc; i++)
- {
- int indexMinimum = IndexOfMinimum(tablica,TAB_LENGTH,i);
- SwapElements(&(tablica[i]),&(tablica[indexMinimum]));
- }
- }
- // Wyswietla zawartosc tablicy.
- void DisplayArray(int tablica[], int wielkosc)
- {
- for(int i = 0; i < wielkosc; i++)
- {
- printf("%d \n",tablica[i]);
- }
- }
- // Zamienia wartosciami elementy w tablicy.
- void SwapElements(int* elementA,int* elementB)
- {
- int pomoc = *elementA;
- *elementA = *elementB;
- *elementB = pomoc;
- }
- // Wyszukuje i zwraca indeks najmniejszego elementu tablicy
- // poczawszy od startingPoint az do konca.
- int IndexOfMinimum(int tablica[], int wielkosc, int startingPoint)
- {
- int index = startingPoint;
- for( int i = startingPoint; i < wielkosc; i++)
- {
- if( tablica[i] < tablica[index] )
- {
- index = i;
- }
- }
- return index;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement