Advertisement
Wojtekd

Selection-Sort na przykladzie tablic

Dec 30th, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. // Selection Sort - algorytm sortowania
  2. // przez proste wybieranie na przykladzie tablic.
  3.  
  4. #include <stdio.h>
  5.  
  6. // Dlugosc tablicy.
  7. #define TAB_LENGTH 10
  8.  
  9. // Lista prototypów funkcji.
  10. void SwapElements(int* elementA,int* elementB);
  11. int IndexOfMinimum(int tablica[], int wielkosc, int startingPoint);
  12. void SelectionSort(int tablica[], int wielkosc);
  13. void DisplayArray(int tablica[], int wielkosc);
  14.  
  15. // Funkcja main.
  16. int main( void )
  17. {
  18.     int tablica[TAB_LENGTH];
  19.  
  20.     printf("wypelnij tablice %d elementami.",TAB_LENGTH);
  21.     for( int i = 0; i < TAB_LENGTH; i++)
  22.     {
  23.         printf("podaj kolejna liczbe:");
  24.         scanf("%d",&tablica[i]);
  25.     }
  26.  
  27.     // Przed sortowaniem.
  28.     DisplayArray(tablica,TAB_LENGTH);
  29.  
  30.     // Po sortowaniu.
  31.     SelectionSort(tablica,TAB_LENGTH);
  32.     printf("\n");
  33.     DisplayArray(tablica,TAB_LENGTH);
  34.  
  35.     int a; scanf("%d",&a);
  36.     return 0;
  37. }
  38. // Funkcja sortujaca dowolna tablice typu int.
  39. void SelectionSort(int tablica[], int wielkosc)
  40. {
  41.     for(int i = 0; i < wielkosc; i++)
  42.     {
  43.         int indexMinimum = IndexOfMinimum(tablica,TAB_LENGTH,i);
  44.         SwapElements(&(tablica[i]),&(tablica[indexMinimum]));
  45.     }
  46. }
  47. // Wyswietla zawartosc tablicy.
  48. void DisplayArray(int tablica[], int wielkosc)
  49. {
  50.     for(int i = 0; i < wielkosc; i++)
  51.     {
  52.         printf("%d \n",tablica[i]);
  53.     }
  54. }
  55. // Zamienia wartosciami elementy w tablicy.
  56. void SwapElements(int* elementA,int* elementB)
  57. {
  58.     int pomoc = *elementA;
  59.     *elementA = *elementB;
  60.     *elementB = pomoc;
  61. }
  62. // Wyszukuje i zwraca indeks najmniejszego elementu tablicy
  63. // poczawszy od startingPoint az do konca.
  64. int IndexOfMinimum(int tablica[], int wielkosc, int startingPoint)
  65. {
  66.     int index = startingPoint;
  67.     for( int i = startingPoint; i < wielkosc; i++)
  68.     {
  69.         if( tablica[i] < tablica[index] )
  70.         {
  71.             index = i;
  72.         }
  73.     }
  74.     return index;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement