Lekcja – Sortowanie bąbelkowe (buble sort)

x = 1

y = 100

x,y = y,x

print(x, y)
def sort_bubble(list):

    is_change = True

    while is_change:
        is_change = False
        for i in range(len(list)-1):
            if list[i] > list[i+1]:
                list[i],list[i+1] = list[i+1],list[i]
                is_change = True
list = [1,3,9,2,0,6,4,7,5,3]
sort_bubble(list)
list

def sort_bubble2(list):

    # don't compare values at the end of the list - they are already sorted
    max_index = len(list) - 1

    for max_not_sorted_index in range(max_index,0,-1):
        is_change = False
        for i in range(max_not_sorted_index):     
            if list[i] > list[i+1]:
                list[i],list[i+1] = list[i+1],list[i]
                is_change = True
        
        if not is_change:
            break
list = [1,3,9,2,0,6,4,7,5,3]
sort_bubble2(list)
list

Rozwiązanie

import time
import random


#declarations
max_limit = 10000

my_list1 = [random.randint(0, max_limit) for i in range(max_limit)]
my_list2 = my_list1.copy()

# functions

def sort_bubble(list):

    is_change = True

    while is_change:
        is_change = False
        for i in range(len(list)-1):
            if list[i] > list[i+1]:
                list[i],list[i+1] = list[i+1],list[i]
                is_change = True

def sort_bubble2(list):

    # don't compare values at the end of the list - they are already sorted
    max_index = len(list) - 1

    for max_not_sorted_index in range(max_index,0,-1):
        is_change = False
        for i in range(max_not_sorted_index):     
            if list[i] > list[i+1]:
                list[i],list[i+1] = list[i+1],list[i]
                is_change = True
        
        if not is_change:
            break
   


# checking time - case sort_bubble

start = time.time()
sort_bubble(my_list1)
stop = time.time()
print(f'Sorting duration for function sort_bubble:    {stop - start}')


# checking time - case sort_bubble2

start = time.time()
sort_bubble2(my_list2)
stop = time.time()
print(f'Sorting duration for function sort_bubble2:   {stop - start}')