Python
Python

 

 

Overview

Selection sort is a simple and intuitive sorting algorithm. It works by repeatedly selecting the minimum element from the unsorted portion of the list and moving it to the beginning. The algorithm divides the input list into two parts: the sorted part and the unsorted part.

Python Implementation


def selection_sort(arr):
    """
    Sorts an array in ascending order using the selection sort algorithm.

    Parameters:
    arr (list): A list of elements to be sorted.

    Returns:
    list: The sorted list.
    """
    n = len(arr)
    for i in range(n):
        # Assume the minimum is the first element of the unsorted part
        min_index = i
        for j in range(i + 1, n):
            # Update min_index if the current element is smaller
            if arr[j] < arr[min_index]:
                min_index = j
        # Swap the found minimum element with the first element
        arr[i], arr[min_index] = arr[min_index], arr[i]
    return arr

# Example usage:
if __name__ == "__main__":
    sample_array = [64, 25, 12, 22, 11]
    print("Original array:", sample_array)
    sorted_array = selection_sort(sample_array)
    print("Sorted array:", sorted_array)

Explanation of the Program Structure

  • Function Definition:The function selection_sort(arr) takes a list arr as input and sorts it in place.
  • Outer Loop:The outer loop iterates through each element in the list. The index i represents the boundary between the sorted and unsorted parts.
  • Inner Loop:The inner loop searches for the minimum element in the unsorted part of the list. It starts from the index i + 1 to the end of the list.
  • Swap:After finding the minimum element, it swaps the minimum element with the first element of the unsorted part, thereby expanding the sorted part of the list.
  • Return Statement:The sorted list is returned at the end of the function.

Example Output

When you run the program with the example array [64, 25, 12, 22, 11], the output will be:

Original array: [64, 25, 12, 22, 11]
Sorted array: [11, 12, 22, 25, 64]

 

By Aditya Bhuyan

I work as a cloud specialist. In addition to being an architect and SRE specialist, I work as a cloud engineer and developer. I have assisted my clients in converting their antiquated programmes into contemporary microservices that operate on various cloud computing platforms such as AWS, GCP, Azure, or VMware Tanzu, as well as orchestration systems such as Docker Swarm or Kubernetes. For over twenty years, I have been employed in the IT sector as a Java developer, J2EE architect, scrum master, and instructor. I write about Cloud Native and Cloud often. Bangalore, India is where my family and I call home. I maintain my physical and mental fitness by doing a lot of yoga and meditation.

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)