Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- // Function prototypes.
- int comparsion(int a, int b); // Comparsion function
- void change(int *a, int *b); // Swapping function
- void bsort(int (*cmpr)(int, int), void (*swap)(int*, int*), int* array, int asize); // Generic bubble sort
- int main(int argc, char *argv[]){
- int array[] = {15, 9, 4, 6, 11, 1};
- bsort(comparsion, change, array, 6);
- printf("%d, %d, %d, %d, %d, %d\n", array[0], array[1], array[2], array[3], array[4], array[5]);
- return 0;
- }
- void bsort(int (*cmpr)(int, int), void (*swap)(int*, int*), int* array, int asize){
- int swapped; // 1 is true, 0 is false...
- do{
- swapped = 0;
- int i;
- for(i = 1; i < asize; i++){
- if((*cmpr)(array[i-1], array[i])){
- (*swap)(&array[i-1], &array[i]);
- swapped = 1;
- }
- }
- }while(swapped == 1);
- }
- int comparsion(int a, int b){
- // a = i-1 and b = i
- if(a > b){
- return 1;
- }
- return 0;
- }
- void change(int *a, int *b){
- int temp = *b;
- *b = *a;
- *a = temp;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement