как отсортировать слова по алфавиту с помощью пузырьковой сортировки python - PullRequest
0 голосов
/ 19 июня 2020
nama = ('a', 'B', 'A')
for i in range(len(nama) - 1, 0, -1):
    for j in range(i):
        if nama[j] > nama[j + 1]:
            temp2=nama[j]
            nama[j]= nama[j+1]
            nama[j+1]=temp2
print(nama)

Код вывода: ('A', 'B', 'a' ) Как скрыть вывод в ('A', 'a', 'B') с пузырьковой сортировкой?

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Вы не можете сделать это только потому, что в ASCII ord('a') = 97 > ord('A') и ord('a') > ord('B'), поэтому, если вы используете любую операцию сортировки для этого списка, всегда будет ['A','B','a']

0 голосов
/ 19 июня 2020

Здесь https://www.geeksforgeeks.org/bubble-sort/ алгоритм пузырьковой сортировки в python, чтобы использовать его со строками, вы можете создать словарь со всеми символами и их значениями (вы можете поместить в нужном вам порядке 'a': 1, 'A': 2 et c ...) if dic[arr[j]] > dic[arr[j+1]] : или используйте функцию ord, которая возвращает целое число, представляющее символ Unicode if ord(arr[j]) > ord(arr[j+1]) :

def bubbleSort(arr): 
    n = len(arr) 

    # Traverse through all array elements 
    for i in range(n): 

        # Last i elements are already in place 
        for j in range(0, n-i-1): 

            # traverse the array from 0 to n-i-1 
            # Swap if the element found is greater 
            # than the next element 
            if arr[j] > arr[j+1] : 
                arr[j], arr[j+1] = arr[j+1], arr[j] 

# Driver code to test above 
arr = [64, 34, 25, 12, 22, 11, 90] 

bubbleSort(arr) 

print ("Sorted array is:") 
for i in range(len(arr)): 
print ("%d" %arr[i]),  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...