From 74245fe3e61016cdb804ec80ee874f1bb00c1cbd Mon Sep 17 00:00:00 2001 From: 2400031832 <2400031832@kluniversity.in> Date: Tue, 25 Nov 2025 13:55:03 +0530 Subject: [PATCH] Enhance docstring for selection_sort function Updated the docstring to provide detailed explanation of the selection sort algorithm, including time and space complexity. --- sorts/selection_sort.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sorts/selection_sort.py b/sorts/selection_sort.py index 506836b53e44..f4ba9e9685d4 100644 --- a/sorts/selection_sort.py +++ b/sorts/selection_sort.py @@ -2,9 +2,16 @@ def selection_sort(collection: list[int]) -> list[int]: """ Sorts a list in ascending order using the selection sort algorithm. + Selection sort works by repeatedly finding the minimum element from the + unsorted portion of the list and placing it at the beginning. + :param collection: A list of integers to be sorted. :return: The sorted list. + Time Complexity: O(n^2) - where n is the number of elements. + The algorithm always makes n*(n-1)/2 comparisons regardless of input. + Space Complexity: O(1) - sorts in place using only a constant amount of extra space. + Examples: >>> selection_sort([0, 5, 3, 2, 2]) [0, 2, 2, 3, 5] @@ -15,7 +22,6 @@ def selection_sort(collection: list[int]) -> list[int]: >>> selection_sort([-2, -5, -45]) [-45, -5, -2] """ - length = len(collection) for i in range(length - 1): min_index = i @@ -28,7 +34,9 @@ def selection_sort(collection: list[int]) -> list[int]: if __name__ == "__main__": + import doctest + + doctest.testmod() user_input = input("Enter numbers separated by a comma:\n").strip() unsorted = [int(item) for item in user_input.split(",")] - sorted_list = selection_sort(unsorted) - print("Sorted List:", sorted_list) + print(selection_sort(unsorted))