In eduladder you can Ask,Answer,Listen,Earn and Download Questions and Question papers.

Watch related videos of your favorite subject.

Connect with students from different parts of the world.

Apply or Post Jobs, Courses ,Internships and Volunteering opportunity. For FREE

See Our team

Wondering how we keep quality?

Got unsolved questions? Ask Questions

GATE
GMAT
CBSE
NCERT
Career
Interview
Railway
UPSC
NID
NIFT-UG
NIFT-PG
PHP
AJAX
JavaScript
Node Js
Shell Script
Research

## How to implement Iterative QuickSort Algorithm?

## its about How to implement Iterative QuickSort Algorithm

Asked On2019-09-03 18:20:02 by:Annaliya

Taged users:

Likes:

Be first to like this question

Dislikes:

Be first to dislike this question

Talk about this Like Dislike

Download question setAnswersFollowing is a typical recursive implementation of Quick Sort that uses last element as pivot.

# A typical recursive Python

# implementation of QuickSort

# Function takes last element as pivot,

# places the pivot element at its correct

# position in sorted array, and places all

# smaller (smaller than pivot) to left of

# pivot and all greater elements to right

# of pivot

def partition(arr, low, high):

i = (low - 1) # index of smaller element

pivot = arr[high] # pivot

for j in range(low, high):

# If current element is smaller

# than or equal to pivot

if arr[j] <= pivot:

# increment index of

# smaller element

i += 1

arr[i], arr[j] = arr[j], arr[i]

arr[i + 1], arr[high] = arr[high], arr[i + 1]

return (i + 1)

# The main function that implements QuickSort

# arr[] --> Array to be sorted,

# low --> Starting index,

# high --> Ending index

# Function to do Quick sort

def quickSort(arr, low, high):

if low < high:

# pi is partitioning index, arr[p] is now

# at right place

pi = partition(arr, low, high)

# Separately sort elements before

# partition and after partition

quickSort(arr, low, pi-1)

quickSort(arr, pi + 1, high)

# Driver Code

if __name__ == '__main__' :

arr = [4, 2, 6, 9, 2]

n = len(arr)

# Calling quickSort function

quickSort(arr, 0, n - 1)

for i in range(n):

print(arr[i], end = " ")

1) The above implementation uses last index as pivot. This causes worst-case behavior on already sorted arrays, which is a commonly occurring case. The problem can be solved by choosing either a random index for the pivot, or choosing the middle index of the partition or choosing the median of the first, middle and last element of the partition for the pivot. (See this for details)

2) To reduce the recursion depth, recur first for the smaller half of the array, and use a tail call to recurse into the other.

3) Insertion sort works better for small subarrays. Insertion sort can be used for invocations on such small arrays (i.e. where the length is less than a threshold t determined experimentally). For example, this library implementation of qsort uses insertion sort below size 7.

Likes:

Be first to like this answer

Dislikes:

Be first to dislike this answer

Talk about this Like Dislike

## You might like this video:Javascript

Watch more here

## Watch more videos from this user Here

Learn how to upload a video over here

Lets together make the web is a better placeWe made eduladder by keeping the ideology of building a supermarket of all the educational material available under one roof. We are doing it with the help of individual contributors like you, interns and employees. So the resources you are looking for can be easily available and accessible also with the freedom of remix reuse and reshare our content under the terms of creative commons license with attribution required close.

You can also contribute to our vision of "Helping student to pass any exams"with these.Answer a question:You can answer the questions not yet answered in eduladder.How to answer a questionCareer:Work or do your internship with us.Work with usCreate a video:You can teach anything and everything each video should be less than five minutes should cover the idea less than five min.How to upload a video on eduladder