Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: main.c
- * Author: Gerardo Cicalese
- *
- * Created on 18 novembre 2019, 14.22
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- typedef int Info;
- void selectionSort(Info *, int);
- int searchMin(Info *, int);
- void swap(Info *, Info *);
- int compare(Info, Info);
- int main(void)
- {
- srand(time(NULL));
- Info array[10];
- for(int i=0; i<10; ++i)
- array[i] = rand()%100;
- for(int i=0; i<10; ++i)
- printf("%d\t", array[i]);
- printf("\nSorting...\n");
- selectionSort(array, 10);
- for(int i=0; i<10; ++i)
- printf("%d\t", array[i]);
- return 0;
- }
- void selectionSort(Info * array, int len)
- {
- int min, j = len;
- for(int i = 0; i < j; ++i, ++array, --len)
- {
- min = searchMin(array, len);
- (min == 0)?:(swap(array, array+min));
- }
- }
- int searchMin(Info * array, int len)
- {
- int min = 0;
- for(int i = 1; i < len; ++i)
- if(-1 == compare(array[i], array[min]))
- min = i;
- return min;
- }
- void swap(Info * a, Info * b)
- {
- Info temp = *a;
- *a = *b;
- *b = temp;
- }
- int compare(Info a, Info b)
- {
- if(a == b)
- return 0;
- if(a > b)
- return 1;
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement