#---------------#
# bubblesort    #
#C=ZAW          #
#V1.0           #
#f=bubblesort.py#
#auth=vodiman   #
#---------------#
import random
import time
#define function#
def drucken(arraytosort):
    i=0
    zeile = 1
    spalte = 1
    while zeile < (elements/40):
        while spalte < 41:
            print(str(arraytosort[i]).rjust(3, ' '), end=" ",)
            spalte += 1
            i+=1
        zeile += 1
        spalte = 1
        print(" ")
    print(" ")
#--------------control------------------
TEST=1      #print/noprint array
DIRECTION=1  #sort descending/ascending
elements=1200 #elements in array durch 40 Teilbar wegen Zeilenlaenge
if DIRECTION==1:
    DIR = "AUFSTEIGEND"
else:
    DIR = "ABSTEIGEND"
#---------------------------------------
zeile = 1
spalte = 1
i=0
arraytosort=[]
ch=1
temp=0
anzloop=0
anzch=0
print("+----------------------+")
print("I BUBBLESORT in Python I")
print("+----------------------+")
print("+------------------------------+")
print("   Unsortiert,",elements,"Elemente")
print("+------------------------------+")
while i <elements:
    arraytosort.append(random.randint(1, elements))
    i+=1
if TEST : drucken(arraytosort)
if TEST: print("+------------------------------+")
print("       Erstellung beendet")
print("+------------------------------+")
print("  Start Sorierung ",DIR)
print("    ",time.strftime("%d.%m.%Y %H:%M:%S"))
print("+------------------------------+")
#Python hat einen Befehl zum Sortieren von Arrays(Listen)
#: array.sort()  =ASC  oder array.reverse() = DESC 
i=0
while ch==1:
    ch=0
    while i<elements-1:
        if DIRECTION:
            if arraytosort[i+1] < arraytosort[i]:
                temp=arraytosort[i]
                arraytosort[i]=arraytosort[i+1]
                arraytosort[i+1]=temp
                ch=1
                anzch+=1
        else: 
            if arraytosort[i+1] > arraytosort[i]:
                temp=arraytosort[i]
                arraytosort[i]=arraytosort[i+1]
                arraytosort[i+1]=temp
                ch=1
                anzch+=1
        i+=1
    i=0
    anzloop+=1
print("     Sorierung beendet")
print("    ",time.strftime("%d.%m.%Y %H:%M:%S"))
print("+------------------------------+")
if TEST : drucken(arraytosort)
if TEST: print("+------------------------------+")
print("  Anzahl Umläufe:", anzloop)
print("  Anzahl Tauschvorgänge:", anzch)
print("+------------------------------+")
print("ENDE")
s=input()



