Kth SMALLEST ELEMENT

 

Kth Smallest Element in an Array 

Introduction

Finding the kth smallest element in an array is a common problem in programming. It helps in understanding sorting techniques and how elements are ordered.

The kth smallest element means the element that would appear at position k if the array is sorted in ascending order.

Problem Statement

Given an array arr[] and an integer k, return the kth smallest element.

Example

Input:

arr = [10, 5, 4, 3, 48, 6, 2, 33, 53, 10]
k = 4

Output:

5

Explanation:
Sorted array = [2, 3, 4, 5, 6, 10, 10, 33, 48, 53]
4th smallest element is 5

Solution Code

class Solution:
    def kthSmallest(self, arr, k):
        arr.sort()
        return arr[k - 1]

Approach Used: Sorting

Idea

If we sort the array in ascending order, the kth smallest element will be at index k-1 (since indexing starts from 0).

How It Works

  1. Sort the array using arr.sort()

  2. Access the element at index k-1

  3. Return that element

Why This Approach Was Chosen

  • Very simple and easy to implement

  • Built-in sorting is efficient and reliable

  • Reduces complexity of manually finding kth element

Alternative Approaches

  • Using Min Heap / Max Heap
    Useful for large datasets

  • QuickSelect Algorithm (Optimal)
    Time complexity can be reduced to O(n)

Why not used here?
For basic understanding and implementation, sorting is straightforward and sufficient.

Time and Space Complexity

  • Time Complexity: O(n log n) (due to sorting)

  • Space Complexity: O(1) (in-place sort)

Important Observation

  • Since Python uses 0-based indexing, we use k-1

  • Sorting changes the original array (in-place)

Conclusion

Using sorting to find the kth smallest element is a simple and effective approach. While more optimized methods exist, this method is preferred for clarity and ease of implementation, especially for beginners.

Comments

Popular posts from this blog

THE DELIVERY MAN

EC2 LAUNCHING

SORT A LINKED LIST USING MERGE SORT