from typing import List


def doggo_bubble_sort(good_boys: List[int]) -> List[int]:
    """Sorts a pack of numbers by having the bigger zoomies bubble to the end."""
    pack_size = len(good_boys)

    # Loop through the yard pass by pass
    for lap in range(pack_size):
        # Sniffing flag to see if any swaps happened during this patrol
        zoomies_swapped = False

        for sniff_index in range(0, pack_size - lap - 1):
            current_pup = good_boys[sniff_index]
            neighbor_pup = good_boys[sniff_index + 1]

            # If the current pup has more energy than the neighbor, do the polite sniff-swap
            if current_pup > neighbor_pup:
                # Perform the tail-chase swap
                good_boys[sniff_index], good_boys[sniff_index + 1] = (
                    good_boys[sniff_index + 1],
                    good_boys[sniff_index],
                )
                zoomies_swapped = True

        # If no pups traded spots, the whole pack is lined up and ready for treats
        if not zoomies_swapped:
            break

    return good_boys


# Yard test
treat_counts = [42, 12, 88, 5, 23, 1]
print("Lined up pack:", doggo_bubble_sort(treat_counts))