#!/usr/bin/env python
import random, time

# Aufrufparameter auslesen und als Groesse interpretieren
try:
    from sys import argv
    GROESSE=int(argv[1])
except:
    GROESSE=100  # Default-Groesse


# Funktion, die prüft, ob eine Liste sortiert ist
def isSorted (a):
  for i in range(len(a)-1):
    if a[i] > a[i+1]:
      return False
  return True

# Funktion, die eine Liste sortiert
def sortiere(arr):
    num = len(arr)
    while not isSorted(arr):
        i = random.randint(0,num-1)
        j = random.randint(0,num-1)
        if i == j: continue
        if j < i: i,j = j,i
        if arr[i] > arr[j]:
            arr[i],arr[j] = arr[j],arr[i]

# Hauptprogramm
print ("Sortier-Test, Groesse: %d" % GROESSE)

# Liste aus Zufallszahlen erzeugen
liste = [random.randint(100,999) for i in range(GROESSE)]
if GROESSE < 500:
    print ("Eingabe:", liste)           # Ausgabe, falls ueberschaubar

t1 = time.process_time(); print ("START", t1)   # Startzeit speichern
sortiere (liste)                                # Liste sortieren
t2 = time.process_time(); print ("END  ", t2)   # Endzeit speichern

if GROESSE < 500:
    print ("Ausgabe:", liste)           # Ausgabe, falls ueberschaubar
print ("Laufzeit (sort): %7.5f msec" % (1000 * (t2-t1)))   # Laufzeit
