Let us take the following array and apply the Selection Sort algorithm to sort the array in ascending order.
{
"array": [6,3,8,2,7,4],
"showIndices": true,
"specialIndices": []
}
Pass 1
Assume index 0 (6) is the minimum in the unsorted portion of array.
➜ Comparing current minimum 6 at index=0 with 3 at index=1
{
"array": [6,3,8,2,7,4],
"showIndices": true,
"highlightIndices": [0,1],
"highlightIndicesGreen": [],
"specialIndices": [],
"labels": {
"0": "min"
}
}
Found new minimum 3 at index=1.
➜ Comparing current minimum 3 at index=1 with 8 at index=2
{
"array": [6,3,8,2,7,4],
"showIndices": true,
"highlightIndices": [1,2],
"highlightIndicesGreen": [],
"specialIndices": [],
"labels": {
"1": "min"
}
}
No change. 8 is not smaller than current minimum.
➜ Comparing current minimum 3 at index=1 with 2 at index=3
{
"array": [6,3,8,2,7,4],
"showIndices": true,
"highlightIndices": [1,3],
"highlightIndicesGreen": [],
"specialIndices": [],
"labels": {
"1": "min"
}
}
Found new minimum 2 at index=3.
➜ Comparing current minimum 2 at index=3 with 7 at index=4
{
"array": [6,3,8,2,7,4],
"showIndices": true,
"highlightIndices": [3,4],
"highlightIndicesGreen": [],
"specialIndices": [],
"labels": {
"3": "min"
}
}
No change. 7 is not smaller than current minimum.
➜ Comparing current minimum 2 at index=3 with 4 at index=5
{
"array": [6,3,8,2,7,4],
"showIndices": true,
"highlightIndices": [3,5],
"highlightIndicesGreen": [],
"specialIndices": [],
"labels": {
"3": "min"
}
}
No change. 4 is not smaller than current minimum.
➜ Minimum in the unsorted portion of array is 2 at index=3.
{
"array": [6,3,8,2,7,4],
"showIndices": true,
"highlightIndices": [3],
"highlightIndicesGreen": [],
"specialIndices": []
}
Swapping 6 and 2 to place the smallest element at correct position.
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [0,3],
"highlightIndicesGreen": [0],
"specialIndices": []
}
Element 2 is now at its correct position.
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndicesGreen": [0],
"specialIndices": []
}
Pass 2
Assume index 1 (3) is the minimum in the unsorted portion of array.
➜ Comparing current minimum 3 at index=1 with 8 at index=2
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [1,2],
"highlightIndicesGreen": [0],
"specialIndices": [],
"labels": {
"1": "min"
}
}
No change. 8 is not smaller than current minimum.
➜ Comparing current minimum 3 at index=1 with 6 at index=3
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [1,3],
"highlightIndicesGreen": [0],
"specialIndices": [],
"labels": {
"1": "min"
}
}
No change. 6 is not smaller than current minimum.
➜ Comparing current minimum 3 at index=1 with 7 at index=4
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [1,4],
"highlightIndicesGreen": [0],
"specialIndices": [],
"labels": {
"1": "min"
}
}
No change. 7 is not smaller than current minimum.
➜ Comparing current minimum 3 at index=1 with 4 at index=5
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [1,5],
"highlightIndicesGreen": [0],
"specialIndices": [],
"labels": {
"1": "min"
}
}
No change. 4 is not smaller than current minimum.
➜ Minimum in the unsorted portion of array is 3 at index=1.
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [1],
"highlightIndicesGreen": [0],
"specialIndices": []
}
No swap needed. Minimum element is already at the correct position.
Element 3 is now at its correct position.
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndicesGreen": [0,1],
"specialIndices": []
}
Pass 3
Assume index 2 (8) is the minimum in the unsorted portion of array.
➜ Comparing current minimum 8 at index=2 with 6 at index=3
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [2,3],
"highlightIndicesGreen": [0,1],
"specialIndices": [],
"labels": {
"2": "min"
}
}
Found new minimum 6 at index=3.
➜ Comparing current minimum 6 at index=3 with 7 at index=4
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [3,4],
"highlightIndicesGreen": [0,1],
"specialIndices": [],
"labels": {
"3": "min"
}
}
No change. 7 is not smaller than current minimum.
➜ Comparing current minimum 6 at index=3 with 4 at index=5
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [3,5],
"highlightIndicesGreen": [0,1],
"specialIndices": [],
"labels": {
"3": "min"
}
}
Found new minimum 4 at index=5.
➜ Minimum in the unsorted portion of array is 4 at index=5.
{
"array": [2,3,8,6,7,4],
"showIndices": true,
"highlightIndices": [5],
"highlightIndicesGreen": [0,1],
"specialIndices": []
}
Swapping 8 and 4 to place the smallest element at correct position.
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndices": [2,5],
"highlightIndicesGreen": [0,1,2],
"specialIndices": []
}
Element 4 is now at its correct position.
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndicesGreen": [0,1,2],
"specialIndices": []
}
Pass 4
Assume index 3 (6) is the minimum in the unsorted portion of array.
➜ Comparing current minimum 6 at index=3 with 7 at index=4
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndices": [3,4],
"highlightIndicesGreen": [0,1,2],
"specialIndices": [],
"labels": {
"3": "min"
}
}
No change. 7 is not smaller than current minimum.
➜ Comparing current minimum 6 at index=3 with 8 at index=5
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndices": [3,5],
"highlightIndicesGreen": [0,1,2],
"specialIndices": [],
"labels": {
"3": "min"
}
}
No change. 8 is not smaller than current minimum.
➜ Minimum in the unsorted portion of array is 6 at index=3.
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndices": [3],
"highlightIndicesGreen": [0,1,2],
"specialIndices": []
}
No swap needed. Minimum element is already at the correct position.
Element 6 is now at its correct position.
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndicesGreen": [0,1,2,3],
"specialIndices": []
}
Pass 5
Assume index 4 (7) is the minimum in the unsorted portion of array.
➜ Comparing current minimum 7 at index=4 with 8 at index=5
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndices": [4,5],
"highlightIndicesGreen": [0,1,2,3],
"specialIndices": [],
"labels": {
"4": "min"
}
}
No change. 8 is not smaller than current minimum.
➜ Minimum in the unsorted portion of array is 7 at index=4.
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndices": [4],
"highlightIndicesGreen": [0,1,2,3],
"specialIndices": []
}
No swap needed. Minimum element is already at the correct position.
Element 7 is now at its correct position.
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndicesGreen": [0,1,2,3,4],
"specialIndices": []
}
Array is fully sorted.
{
"array": [2,3,4,6,7,8],
"showIndices": true,
"highlightIndicesGreen": [0,1,2,3,4,5],
"specialIndices": []
}
Comments
Loading comments...