algorytm.org

Implementacja w Python

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie bąbelkowe (bubblesort) - Implementacja w Python
Ocena użytkownikóww: *****  / 5
SłabyŚwietny
Nadesłany przez Jakub Konieczny, 17 lutego 2011 17:51
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

bubble_1_py.py:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import random

def losuj(rozmiar, od, do): # zwraca tablicę o podanym rozmiarze
    tab=[]                  # z wylosowanymi wartościami
    while rozmiar>0: #dopóki jakieś musi dodać
        tab.append(random.randint(od,do))
        rozmiar-=1 #zmniejsza ilość pozostałych komórek do wylosowania
    return tab

#wersja algorytmu w ktorej za kazdym obiegiem glownej petli 
#przetwarzany jest jeden element mniej (z poczatku listy
#bo tam juz nic nie ma prawa sie zmienic - przy jednym obiegu
#na poczatek wyplywa element o najmniejszej wartosci)
def sort(tab): #zwraca posortowaną tablicę
    for i in range(len(tab)):
        j=len(tab)-1 #od ostatniej komórki
        while j>i:   #do aktualnie szukanej jako najmniejsza
            if tab[j]<tab[j-1]: #jeśli komórka wcześniej jest mniejsza, zamienia
                tmp=tab[j]
                tab[j]=tab[j-1]
                tab[j-1]=tmp
            j-=1
    return tab


tab=losuj(10, 1,10)
print "przed: "+str(tab)
tab=sort(tab)
print "   po: "+str(tab)
Komentarze
photo
-1 # Andrzej26 2012-08-20 13:21
Drobna uwaga co do komentarza w kodzie:
Chyba powinno być:
# Jeśli komórka wcześniej jest WIĘKSZA, zamienia

Pozdrawiam
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
0 # Witamaster 2012-08-25 11:34
Tablica jest przeszukiwana od tyłu, więc jeśli chodzi o komórkę wcześniej przeszukiwaną to WIĘKSZA, ale jeśli o komórkę wcześniej w tablicy to MNIEJSZA i myślę że to miał na myśli Jakub Konieczny ;)
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz