DEV Community

Saranya R
Saranya R

Posted on

Different sorting methodologies

Sorting Methodologies

Sorting is process of arranging elements in a specific order to facilitate efficient searching, retrieval, and analysis of data.


Squares of a Sorted Array

Problem: Given a sorted array that may include negative numbers, return a new array of the squares in sorted order.

Approach: Use a two-pointer technique. Compare values from both ends of the array, place the larger square at the end of the result array, and move inward.

Key Point:
Sorting is avoided entirely by leveraging the structure of the input array.


Merge Two Sorted Linked Lists

Problem: Merge two sorted linked lists into a single sorted list.

Approach: Use a dummy node and two pointers. Compare nodes from both lists and attach the smaller one to the result.

Key Point:
This is efficient merging of already sorted data.


First and Last Occurrence in a Sorted Array

Problem: Find the first and last positions of a target value in a sorted array.

Approach: Perform binary search twice — once to find the left boundary and once to find the right boundary.

Key Point:
Sorting enables precise searching instead of scanning the entire array.


Search in Rotated Sorted Array

Problem: Search for a target value in a rotated sorted array.

Approach: Use a modified binary search. At each step, determine which half is sorted and decide if the target lies within that half.

Key Point:
Even when the array is rotated, partial ordering provides enough structure for efficient search.


Majority Element

Problem: Find the element that appears more than floor(n/2) times.

Approach: Use the Boyer–Moore Voting Algorithm to track a candidate and adjust its count.

Key Point:
Sorting is unnecessary. A linear-time algorithm solves the problem optimally.


Reverse and Deduplicate Linked Lists

Approach: Iteratively reverse pointers to flip the list.

Reverse Linked List:
Approach:
Iteratively reverse pointers to flip the list.

Remove Duplicates:
Approach:
Traverse the sorted list and skip adjacent duplicate nodes.

Key Point:
Sorting ensures duplicates are adjacent, making removal straightforward.


Sort a Linked List

Problem: Sort a linked list efficiently.

Approach: Use merge sort. Split the list using slow and fast pointers, recursively sort each half, and merge them.

Key Point:
Merge sort is preferred for linked lists because it does not require random access.

Top comments (0)