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)
|