diff --git a/src/bubble_sort.py b/src/bubble_sort.py new file mode 100644 index 0000000..345fe6d --- /dev/null +++ b/src/bubble_sort.py @@ -0,0 +1,24 @@ +def bubble_sort(arr): + n = len(arr) + + for i in range(n): + swapped = False + + for j in range(n - i - 1): + if arr[j] > arr[j + 1]: + temporary = arr[j] + arr[j] = arr[j + 1] + arr[j + 1] = temporary + swapped = True + if not swapped: + return arr + +len_arr = int(input("Введите длину массива: ")) +user_arr = [] + +for count in range(len_arr): + user_number = int(input(f"Число номер {count + 1}: ")) + user_arr.append(user_number) + +print("Сортировка выполнена!") +print(bubble_sort(user_arr) ) \ No newline at end of file diff --git a/src/lexicographical_order_ruff.py b/src/lexicographical_order_ruff.py new file mode 100644 index 0000000..406b26c --- /dev/null +++ b/src/lexicographical_order_ruff.py @@ -0,0 +1,39 @@ +USER_STR1 = str(input("Введите первую строку: ")) +USER_STR2 = str(input("Введите вторую строку: ")) +ALPHABET = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[::-1] +MIN_LEN = min(len(USER_STR1), len(USER_STR2)) + +# 1) чем символ дальше от начала алфавита (z), тем он старше +# 2) чем меньше длина строки, тем она старше + + +def lexic_order(string1, string2): + for latin in string1 + string2: + if latin not in ALPHABET: + return "Используйте только латиницу!" + + for let in range(0, MIN_LEN): + let_s1 = string1[let] + let_s2 = string2[let] + + if (let_s1 != let_s2) or ( + let == MIN_LEN - 1 and let_s1 == let_s2 + ): # сравнение возможно, если: + # 1. всретились разные буквы + # 2. буквы одинаковые вплоть до последнего символа одной из строк + if (ALPHABET.index(let_s1) > ALPHABET.index(let_s2)) or ( + len(string1) < len(string2) + and (let_s1 == let_s2) + and let == MIN_LEN - 1 + ): + return "Первая строка старше, чем Вторая" + elif (ALPHABET.index(let_s2) > ALPHABET.index(let_s1)) or ( + len(string1) > len(string2) + and (let_s1 == let_s2) + and let == MIN_LEN - 1 + ): + return "Вторая строка старше, чем Первая" + return "Строки идентичны" + + +print(lexic_order(USER_STR1, USER_STR2)) diff --git a/src/lexicographical_order_ruff_edited.py b/src/lexicographical_order_ruff_edited.py new file mode 100644 index 0000000..406b26c --- /dev/null +++ b/src/lexicographical_order_ruff_edited.py @@ -0,0 +1,39 @@ +USER_STR1 = str(input("Введите первую строку: ")) +USER_STR2 = str(input("Введите вторую строку: ")) +ALPHABET = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[::-1] +MIN_LEN = min(len(USER_STR1), len(USER_STR2)) + +# 1) чем символ дальше от начала алфавита (z), тем он старше +# 2) чем меньше длина строки, тем она старше + + +def lexic_order(string1, string2): + for latin in string1 + string2: + if latin not in ALPHABET: + return "Используйте только латиницу!" + + for let in range(0, MIN_LEN): + let_s1 = string1[let] + let_s2 = string2[let] + + if (let_s1 != let_s2) or ( + let == MIN_LEN - 1 and let_s1 == let_s2 + ): # сравнение возможно, если: + # 1. всретились разные буквы + # 2. буквы одинаковые вплоть до последнего символа одной из строк + if (ALPHABET.index(let_s1) > ALPHABET.index(let_s2)) or ( + len(string1) < len(string2) + and (let_s1 == let_s2) + and let == MIN_LEN - 1 + ): + return "Первая строка старше, чем Вторая" + elif (ALPHABET.index(let_s2) > ALPHABET.index(let_s1)) or ( + len(string1) > len(string2) + and (let_s1 == let_s2) + and let == MIN_LEN - 1 + ): + return "Вторая строка старше, чем Первая" + return "Строки идентичны" + + +print(lexic_order(USER_STR1, USER_STR2))