__author__ = 'Tom'

import sys
import random

#Return True if element (value) is in array (data)
def contains(data,value):
    for item in data:
        if item == value:
            return True
    return False

def swap(array, x, y):
    temp = array[x]
    array[x] = array[y]
    array[y] = temp
    return array

#Find all indexes where the element is in the array
def findAllIndexesOfElement(data,value):
    indeces = []
    if (contains(data,value)) == True:
         for x in range(0,data.__len__()):
            currValue = data.__getitem__(x)
            if currValue == value:
                indeces.append(x)
    return indeces

#Generate random array
def randArray(size):
    array = [0] * size
    for i in range(len(array)):
        array[i] = random.randint(1, 1000)
    return array

#Find greates number in array
def greatest(array):
    maximum = array[0]
    for item in array:
        if item > maximum:
            maximum = item
    return maximum

#Find second greates number in array
def secondGreatest(array):
    maximum = greatest(array)
    maximumIndeces = findAllIndexesOfElement(array,maximum)
    for index in maximumIndeces:
        array[index] = -sys.maxsize
    secondMax = greatest(array)
    return secondMax

#Find second greates number in array
def thirdGreatest(array):
    third = 0
    for x in range(0,2):
        third = secondGreatest(array)
    return third

#Find second greates number in array
def findXgreates(array, x):
    third = 0
    if(x<2):
        third = greatest(array)
        return third
    for x in range(0,x-1):
        third = secondGreatest(array)
    return third

#Take care this approach doesnt work well. - The reson was presented on lectures
randomNumbers = randArray(10)
print(randomNumbers)
print('Greates:'+str(greatest(list(randomNumbers))))
print('Second greates:'+str(secondGreatest(list(randomNumbers))))
print('Third greates:'+str(thirdGreatest(list(randomNumbers))))
print('X greates 1:'+str(findXgreates(list(randomNumbers),1)))
print('X greates 2:'+str(findXgreates(list(randomNumbers),2)))
print('X greates 3:'+str(findXgreates(list(randomNumbers),3)))
