#include <stdio.h>
#include <stdint.h>
void printit (uint8_t *arr, uint8_t n) {
int i;
printf("%d:", n);
for (i=0; i < n; i++ ) {
printf("%d ", arr[i]);
}
printf("\n");
}
void bubble_sort(uint8_t *arr, uint8_t N) {
// Your logic here
uint8_t i, localmax, n, hold;
// printit(arr, N);
for (n= N; n > 1; n--) {
localmax = n-1;
for (i=0; i < n; i++) {
if (arr[i] > arr[localmax]) {
localmax = i;
}
}
// put the localmax at the end
hold = arr[n-1];
arr[n-1] = arr[localmax];
arr[localmax] = hold;
//printit(arr, n);
}
}
int main() {
uint8_t n;
scanf("%hhu", &n);
uint8_t arr[100];
for (uint8_t i = 0; i < n; i++) {
scanf("%hhu", &arr[i]);
}
bubble_sort(arr, n);
for (uint8_t i = 0; i < n; i++) {
printf("%hhu", arr[i]);
if(i < n-1){
printf(" ");
}
}
return 0;
}
scan a diminishing array starting from full array and put the largest in the bottom
then repeat for array (n-1) etc
Input
5 10 3 5 2 7
Expected Output
2 3 5 7 10