GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Algorithms
  • Sorting Algorithms
  • AVINASH NETHALA
  • 5 years ago4 years ago
  • Previous: Selection Sort Algorithm in Python
  • Next: Insertion Sort algorithm in Python

This view

  • Original page
  • New address

GeezerVison is showing www.programminginpython.com — QuickSort Algorithm in Python - Programming In Python

Hello everyone, welcome back to programminginpython.com. Here I will show you how to implement QuickSort Algorithm in Python. In previous posts, I have covered Insertion Sort, Merge Sort, Selection Sort, and Bubble Sort. Now let’s learn to implement one more sorting algorithm which is QuickSort Algorithm.

Quicksort is an in-place sorting algorithm, which means it does not require any extra/temporary list to perform sorting, everything will be done on the original list itself. Here in this sorting technique we will select a pivot element and arrange all the items to the right are greater than pivot and elements to the left are lesser than the pivot. Again we do the same step for the left and right elements of the pivot as sublists until all the elements are sorted.

Quicksort when implemented well it is one of the best sorting algorithms, In fact, the sort function provided in most of the language libraries is the implementation of Quicksort itself.

You can also watch the video on YouTube here.

See the below animation of Quicksort implementation,

QuickSort Algorithm in Python

By en:User:RolandH, CC BY-SA 3.0, Link

QuickSort Algorithm – Code Visualization

Time Complexity Of QuickSort

Best Case O(n log n)
Average Case O(n log n)
Worst Case O(n2)

Program on Github

Algorithm:

  1. Pick an element, called a pivot, from the array.
  2. Partitioning: reorder the array so that all elements with values less than the pivot come before the pivot, while all elements with values greater than the pivot come after it (equal values can go either way). After this partitioning, the pivot is in its final position. This is called the partition operation.
  3. Recursively apply the above steps to the sub-array of elements with smaller values and separately to the sub-array of elements with greater values.

Program:

def partition(sort_list, low, high):

    i = (low -1)
    pivot = sort_list[high]
    for j in range(low, high):
        if sort_list[j] <= pivot:
            i += 1
            sort_list[i], sort_list[j] = sort_list[j], sort_list[i]
    sort_list[i+1],sort_list[high] = sort_list[high], sort_list[i+1]
    return (i+1)

            
def quick_sort(sort_list, low, high):
    if low < high:
        pi = partition(sort_list, low, high)
        quick_sort(sort_list, low, pi-1)
        quick_sort(sort_list, pi+1, high)


lst = []
size = int(input("Enter size of the list: "))

for i in range(size):
    elements = int(input("Enter an element"))
    lst.append(elements)

low = 0
high = len(lst) - 1
quick_sort(lst, low, high)

print(lst)

 

That is it guys, we have now successfully implemented Quick Sort Algorithm.

Program on GitHub

Output:

QuickSort Algorithm in Python

 

Feel free to look at some other algorithms here or some programs on lists here or have a look at all the programs on python here.

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • More
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp

Online Python Compiler

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • More
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp

Leave a Reply Cancel reply

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

Related Posts

Heap Sort Algorithm in Python

Heap Sort Algorithm in Python

AVINASH NETHALA4 years ago2 years ago 0
Bubble Sort algorithm in Python

Bubble Sort algorithm in Python

AVINASH NETHALA4 years ago4 years ago 0
Python program to implement Binary Search Algorithm

Python program to implement Binary Search Algorithm

AVINASH NETHALA4 years ago4 years ago 0
Python program to implement Linear Search Algorithm

Python program to implement Linear Search Algorithm

AVINASH NETHALA5 years ago4 years ago 0

Recent Posts

  • Python vs R: Which Language is Better for Data Science?
  • Top 7 Python Books You Must Read in 2025
  • Best Python Web Frameworks: Django, Flask, and FastAPI Breakdown
  • 20 Best Python One-Liners to Boost Your Coding Skills
  • Matplotlib Data Visualization in Python

Suggested Courses

  • Complete Python Developer: Zero to Mastery.
  • Automate the boring stuff.
  • Python and Django Full Stack Web Developer Bootcamp.
  • Artificial Intelligence and Machine Learning E-Degree.
  • Complete Python & Python OOP.

Subscribe to our newsletter!

Great Deals

Ads
  • Health and Beauty
  • Deals on Electronics
  • Toys and Games
  • Sports and Outdoors
  • Pet Supplies
  • Shoes
  • Movies and TV

Categories

  • Algorithms (8)
  • Artificial Intelligence AI (3)
  • Basic Programs (25)
  • Books (1)
  • Data Structures (10)
  • Databases (1)
  • Dictionaries (1)
  • Files Handling (1)
  • Letter Patterns (26)
  • Lists (7)
  • Machine Learning (3)
  • Math Programs (6)
  • Pattern Programming (31)
  • Promoted (1)
  • Python for Automation (1)
  • Python for Data Science (6)
  • Python for Ethical Hacking (2)
  • Python For Finance (4)
  • Python GUI (5)
  • Python Libraries (6)
  • Python OOP (1)
  • Python Resources (3)
  • Python Tips and Tricks (10)
  • Searching Algorithms (2)
  • Sets (1)
  • Sorting Algorithms (6)
  • Tuples (1)
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.