Data Initialization
# Generate a list of 5 random integers between 1 and 100
import random
data_list = [random.randint(1, 100) for _ in range(5)]
Step-by-Step Derivation
# Assume first element is maximum
for i in range(1, len(data_list)):
if data_list[0] < data_list[i]:
data_list[0], data_list[i] = data_list[i], data_list[0]
print(data_list)
# [87, 9, 13, 5, 39]
# Assume second element is maximum among remaining
for i in range(2, len(data_list)):
if data_list[1] < data_list[i]:
data_list[1], data_list[i] = data_list[i], data_list[1]
print(data_list)
# [87, 39, 9, 5, 13]
# Assume third element is maximum among remaining
for i in range(3, len(data_list)):
if data_list[2] < data_list[i]:
data_list[2], data_list[i] = data_list[i], data_list[2]
print(data_list)
# [87, 39, 13, 5, 9]
Final Implementation
# Selection sort approach for descending order
for outer in range(len(data_list) - 1):
for inner in range(outer + 1, len(data_list)):
if data_list[outer] < data_list[inner]:
data_list[outer], data_list[inner] = data_list[inner], data_list[outer]
print(data_list)
Explanation:
- outer indices: [0, 1, 2, 3]
- inner indices: [[1, 2, 3, 4], [2, 3, 4], [3, 4], [4]]
- Select Element: Sequentially select elements at positions 1, 2, 3, 4
- Compare: Compare selected element with subesquent elements
- Find Larger: If a larger value exists later in the list
- Swap: Exchange positions to maintain largest value at current position
This iterative process achieves descending order sorting through seelction-based logic.
Practical Example
# Order dataset
order_collection = [
{"id": 1001, "quantity": 1},
{"id": 1002, "quantity": 3},
{"id": 1004, "quantity": 2},
{"id": 1003, "quantity": 7},
]
Sort orders by quantity in descending order (largest to smallest) within the original list:
for position in range(len(order_collection) - 1):
for compare in range(position + 1, len(order_collection)):
if order_collection[position]["quantity"] < order_collection[compare]["quantity"]:
order_collection[position], order_collection[compare] = order_collection[compare], order_collection[position]
print(order_collection)
"""
Result:
[
{'id': 1003, 'quantity': 7},
{'id': 1002, 'quantity': 3},
{'id': 1004, 'quantity': 2},
{'id': 1001, 'quantity': 1}
]
"""