#include <stdio.h>
#include <stdbool.h>

void print_arr(int* arr, int len) {
    for (int i = 0; i < len; i++)
        printf("%d ", arr[i]);
    printf("\n");
}

int naive_sort(int* arr, int len, bool debug) {
    int count = 0;
    int i = 0, end = len-1;
    
    while (i < end) {
        while (i < end && arr[i] <= arr[i+1]) i++;
        
        if (i < end) {
        	if (debug) {
                print_arr(arr, len);
                printf("swap: %d %d\n", arr[i], arr[i+1]);
                printf("count: %d\n", count+1);
                printf("------\n");
        	}
            
            int temp = arr[i+1];
            for (int j = i+1; j > 0; j--)
                arr[j] = arr[j-1];
            arr[0] = temp;
            
            i = 0;
            count++;
        }
    }
    
    return count;
}

int main() {
    int arr[] = { 5, 1, 1, 2, 4, 3 };
    int len = sizeof(arr) / sizeof(int);
    
    print_arr(arr, len);
    printf("------\n");

    int count = naive_sort(arr, len, true);

    print_arr(arr, len);    
    printf("%d\n", count);

}
