Быстрая сортировка без сортировки по датам

#python #date #quicksort

Вопрос:

Я написал алгоритм быстрой сортировки, но он не сортирует файл .txt так, как я хочу. Он должен отсортировать их по датам (в форме day.month.year ). Вместо quicksort() этого сортируйте файл в соответствии с днем и не учитывайте месяц и год. Пример:

 05.01.2018 rr
03.01.2018 aa
01.04.2018 aba
02.02.2018 zystz
 

следует отсортировать по:

 03.01.2018 aa
05.01.2018 rr
02.02.2018 zystz
01.04.2018 aba
 

но мой код сортирует их так:

 01.04.2018 aba
02.02.2018 zystz
03.01.2018 aa
05.01.2018 rr
 

Это мой quicksort() алгоритм:

 f = open(testfile)
arr = f.readlines()

def QuickSort(arr, start= 0, end=len(arr)-1):
    
    def partition(arr, starting, end):
        piv_index = starting
        piv = arr[piv_index]
    
        while starting < end:
            while starting < len(arr) and arr[starting] <= piv:
                starting  = 1
            
            while arr[end] > piv:
                end -= 1
            
            if starting < end:
                arr[starting], arr[end] = arr[end], arr[starting]
            
        arr[end], arr[piv_index] = arr[piv_index], arr[end]
        
        return end

    if start < end:
        
        p = partition(arr, start, end)
        
        QuickSort(arr, start, p-1)
        QuickSort(arr, p 1, end)
    return(arr)

for s in QuickSort(arr):
    print(s)
 

Есть какие-нибудь предложения?

Редактировать: Мне нужно использовать quicksort() для задания, поэтому встроенные функции сортировки, такие как sorted() нельзя использовать. Формат также должен оставаться днем.месяцем.год. Извините, что я недостаточно ясно выразился.

Комментарии:

1. Почему вы используете пользовательскую функцию сортировки вместо встроенной sorted ? Вы уже задавали этот вопрос один раз и получили ответ, который, похоже, распространяется и на этот случай; ваша функция, похоже, ничего не делает для изменения ключа сортировки с чисто алфавитного.

2. Если вы измените его на дату месяца года, они будут отсортированы правильно.

3. Извините, я должен упомянуть, что мы не должны использовать какие-либо встроенные функции, такие как сортировка(). Также формат должен оставаться днем.месяцем. год.