mógł by ktoś je rozwiązać i dopisać jakąś analizę?
Forum raczej jest po to by zapytać o wskazówki/pomóc rozwiązać problem, a nie podać gotowe rozwiązanie na tacy, aczkolwiek dobrze, że chcesz jakąś analizę rozwiązania.
Nie dam Ci gotowego kodu ale powiem jak można to rozwiązać. Mówisz, że wiesz jak działa selection sort. Czyli umiesz zaimplementować ten algorytm dla zwykłej tablicy liczb/znaków. Rozwiązanie tego problemu jest praktycznie identyczne tylko musisz zaimplementować jakieś porównywanie tych struktur. Możesz przeładować operator < albo, jeśli nie możesz zmieniać nic w podanym kodzie, funkcję np. lessThan i porównywać odpowiednie pola struktury, albo odnosisz się do pól struktury operatorem wyłuskania.