From b8c6f517fcc9a9995a43416d9b04fd57dc098daf Mon Sep 17 00:00:00 2001 From: Maxime Menault Date: Tue, 3 Sep 2024 08:26:03 +0200 Subject: [PATCH] Fix --- bubblesort.c | 21 +++++++++++++++++++++ bubblesort.h | 6 ++++++ student_rank.c | 5 +++-- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 bubblesort.c create mode 100644 bubblesort.h diff --git a/bubblesort.c b/bubblesort.c new file mode 100644 index 0000000..a848827 --- /dev/null +++ b/bubblesort.c @@ -0,0 +1,21 @@ +// Bubblesort Algorithm +// M.Menault 2024 + +void bubblesort(int* array, int length) +{ + int swapped, i, tmp; + do + { + swapped = 0; + for(i=1;i array[i]) + { + tmp = array[i-1]; + array[i-1] = array[i]; + array[i] = tmp; + swapped++; + } + } + } while(swapped==1); +} diff --git a/bubblesort.h b/bubblesort.h new file mode 100644 index 0000000..457050b --- /dev/null +++ b/bubblesort.h @@ -0,0 +1,6 @@ +#ifndef __BUBBLESORT__ +#define __BUBBLESORT__ + +void bubblesort(int* array, int length); + +#endif diff --git a/student_rank.c b/student_rank.c index ffcdbaf..af84003 100644 --- a/student_rank.c +++ b/student_rank.c @@ -4,6 +4,7 @@ #include #include #include "heapsort.h" +#include "bubblesort.h" void generate_grades(int** students_array, int students_number, int grades_number) { @@ -54,7 +55,7 @@ int find_rank_student(int student_grade, int* grades_array, int students_number) { int position = -1; int i = 0; - heapsort(grades_array,students_number); + bubblesort(grades_array,students_number); for(i = students_number-1; i >= 0; i--) { if(grades_array[i] == student_grade) @@ -76,7 +77,7 @@ void sort_students(int** students_rank, int** students_array, int students_numbe { grades[j] = students_array[j][i]; } - heapsort(grades,students_number); + bubblesort(grades,students_number); for(j = 0; j < students_number; j++) { students_rank[j][i] = find_rank_student(students_array[j][i],grades,students_number);