# Sorting and Searching: algorithms with Python

Searching and sorting are two fundamental operations in computer science that are essential for effectively manipulating and exploring data. In this section, with a series of in-depth articles, we will examine the main search and sorting techniques implemented using the Python programming language, exploring the most common algorithms and their practical applications.

[wpda_org_chart tree_id=44 theme_id=50]

## Search Algorithms

### Linear or Sequential Search

Linear or sequential search is a direct approach that involves examining each item sequentially until you find the one you want. This method is simple, but can become inefficient on large data sets. We will show a practical implementation of linear search in Python and discuss situations where it is appropriate.

### Binary Search

Binary search is an efficient algorithm applicable only to sorted data. Repeatedly splits the data set in half until the desired element is found. We’ll explore how to implement binary search in Python and discuss its complexity and situations where it offers significant advantages over linear search.

IN-DEPTH ARTICLE

Sequential and Binary Search: Complete Guide to Data Search Efficiency

## Sorting Algorithms

#### BubbleSort

BubbleSort is a simple but inefficient sorting algorithm that repeatedly compares and swaps adjacent elements.

#### QuickSort

QuickSort is an efficient sorting algorithm based on the divide and conquer technique, which divides the data set into smaller subsets.

#### MergeSort

MergeSort is another sorting algorithm that divides and conquers, splitting the data set and then combining the results.

IN-DEPTH ARTICLE

Mergesort & Quicksort