aboutsummaryrefslogtreecommitdiff
path: root/challenge-233/eric-cheung/python/ch-2.py
blob: 19ff07aa18424627e7ae89bddf0c5e909af5acfe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def MySwap(nInput_01, nInput_02):
    return [nInput_02, nInput_01]


## arrInput = [1, 1, 2, 2, 2, 3]  ## Example 1
## arrInput = [2, 3, 1, 3, 2]  ## Example 2
arrInput = [-1, 1, -6, 4, 5, -6, 1, 4, 1]  ## Example 3

arrUniq = sorted(list(set(arrInput)))
arrCount = [arrInput.count(nLoop) for nLoop in arrUniq]

arrOutput = []

## print (arrUniq)
## print (arrCount)

## print ("Before Bubble Sort")

## Bubble Sort
for nRowLoop in range(0, len(arrCount) - 1):
    for nColLoop in range(nRowLoop + 1, len(arrCount)):
        if arrCount[nRowLoop] > arrCount[nColLoop]:
            [arrCount[nRowLoop], arrCount[nColLoop]] = MySwap(arrCount[nRowLoop], arrCount[nColLoop])
            [arrUniq[nRowLoop], arrUniq[nColLoop]] = MySwap(arrUniq[nRowLoop], arrUniq[nColLoop])
        elif arrCount[nRowLoop] == arrCount[nColLoop] and arrUniq[nRowLoop] < arrUniq[nColLoop]:
            [arrUniq[nRowLoop], arrUniq[nColLoop]] = MySwap(arrUniq[nRowLoop], arrUniq[nColLoop])

## print ("After Bubble Sort")

## print (arrUniq)
## print (arrCount)

for nIndx, nLoop in enumerate(arrUniq):
    arrOutput = arrOutput + [nLoop] * arrCount[nIndx]

print (arrOutput)