6. Стек и сортировки

Задачи

Стек (скобки)

Стек

Сортировки

Доп. вопросы

Самому прорешать для закрепления

Задачи

Теория

Сортировка пузырьком без оптимизаций

class Solution:
    # Bubble sort
    # time:      O(n * n)
    # mem (доп): O(1)
    def sortArray(self, nums: List[int]) -> List[int]:
        for i in range(len(nums)):
            for j in range(len(nums) - 1):
                if nums[j] > nums[j + 1]:
                    nums[j], nums[j + 1] = nums[j + 1], nums[j]
        return nums

Сортировка пузырьком с оптимизациями

class Solution:
    # Bubble sort
    # time:      O(n * n)
    # mem (доп): O(1)
    def sortArray(self, nums: List[int]) -> List[int]:
        swapCount = -1
        i = 0
        while swapCount != 0:
            swapCount = 0
            for j in range(len(nums) - i - 1):
                if nums[j] > nums[j + 1]:
                    swapCount += 1
                    nums[j], nums[j + 1] = nums[j + 1], nums[j]
            i += 1
        return nums

После курса

Задачи