Let's find the second smallest number in the array using a loop.
{
"array": [30,20,10,50,60,40],
"showIndices": true
}
Initialize min = Infinity
and secondMin = Infinity
.
Check index 0
Current element is 30
. Compare with min = Infinity
and secondMin = Infinity
.
30 is smaller than current min. Update: secondMin = Infinity
, min = 30
.
{
"array": [30,20,10,50,60,40],
"showIndices": true,
"highlightIndices": [0],
"labels": {"0":"i"}
}
{
"array": ["",30,null],
"showIndices": false,
"emptyIndices": [1, 2],
"emptyCompIndices": [0],
"labels": { "1": "min", "2": "secondMin" }
}
Check index 1
Current element is 20
. Compare with min = 30
and secondMin = Infinity
.
20 is smaller than current min. Update: secondMin = 30
, min = 20
.
{
"array": [30,20,10,50,60,40],
"showIndices": true,
"highlightIndices": [1],
"labels": {"1":"i"}
}
{
"array": ["",20,30],
"showIndices": false,
"emptyIndices": [1, 2],
"emptyCompIndices": [0],
"labels": { "1": "min", "2": "secondMin" }
}
Check index 2
Current element is 10
. Compare with min = 20
and secondMin = 30
.
10 is smaller than current min. Update: secondMin = 20
, min = 10
.
{
"array": [30,20,10,50,60,40],
"showIndices": true,
"highlightIndices": [2],
"labels": {"2":"i"}
}
{
"array": ["",10,20],
"showIndices": false,
"emptyIndices": [1, 2],
"emptyCompIndices": [0],
"labels": { "1": "min", "2": "secondMin" }
}
Check index 3
Current element is 50
. Compare with min = 10
and secondMin = 20
.
No update required.
{
"array": [30,20,10,50,60,40],
"showIndices": true,
"highlightIndices": [3],
"labels": {"3":"i"}
}
{
"array": ["",10,20],
"showIndices": false,
"emptyIndices": [1, 2],
"emptyCompIndices": [0],
"labels": { "1": "min", "2": "secondMin" }
}
Check index 4
Current element is 60
. Compare with min = 10
and secondMin = 20
.
No update required.
{
"array": [30,20,10,50,60,40],
"showIndices": true,
"highlightIndices": [4],
"labels": {"4":"i"}
}
{
"array": ["",10,20],
"showIndices": false,
"emptyIndices": [1, 2],
"emptyCompIndices": [0],
"labels": { "1": "min", "2": "secondMin" }
}
Check index 5
Current element is 40
. Compare with min = 10
and secondMin = 20
.
No update required.
{
"array": [30,20,10,50,60,40],
"showIndices": true,
"highlightIndices": [5],
"labels": {"5":"i"}
}
{
"array": ["",10,20],
"showIndices": false,
"emptyIndices": [1, 2],
"emptyCompIndices": [0],
"labels": { "1": "min", "2": "secondMin" }
}
Final Result:
Second Smallest Element = 20
{
"array": [30,20,10,50,60,40],
"showIndices": true,
"labels": {
"2": "min",
"1": "secondMin"
}
}
{
"array": ["",10,20],
"showIndices": false,
"emptyIndices": [1, 2],
"emptyCompIndices": [0],
"labels": { "1": "min", "2": "secondMin" }
}