Question

In: Computer Science

Using an example of 6 integer elements, Show how quick sort can be done. [4 Marks]...

  1. Using an example of 6 integer elements,

    1. Show how quick sort can be done. [4 Marks]

  1. Describe the worst case scenario of quick sort [2 Marks]

  2. In your answer at d (i), show what makes quick sort categorized as divide and conquer

[2 marks]

Solutions

Expert Solution

QuickSort is a Divide and Conquer calculation. It picks a component as rotate and segments the given exhibit around the picked turn. There are various variants of quickSort that pick turn in various manners.

Continuously pick first component as rotate.

Continuously pick last component as rotate (executed beneath)

Pick an arbitrary component as turn.

Pick middle as turn.

The key cycle in quickSort is segment(). Focus of parcels is, given a cluster and a component x of exhibit as turn, placed x at its right situation in arranged cluster and put every more modest component (more modest than x) before x, and put every single more noteworthy component (more prominent than x) after x. This ought to be done in direct time.

Taking the analogical view in context, consider a circumstance where one needed to sort the papers bearing the names of the understudies, by name from A-Z. One may utilize the methodology as follows:

Select any parting esteem, say L. The parting esteem is otherwise called Pivot.

Gap the heap of papers into two. A-L and M-Z. It isn't vital that the heaps ought to be equivalent.

Rehash the over two stages with the A-L heap, parting it into its critical two parts. Furthermore, M-Z heap, part into its parts. The cycle is rehashed until the heaps are sufficiently little to be arranged without any problem.

Eventually, the more modest heaps can be put one on head of the other to deliver a completely arranged and requested arrangement of papers.

The methodology utilized here is decrease at each split to get to the single-component exhibit.

At each split, the heap was partitioned and afterward a similar methodology was utilized for the more modest heaps by utilizing the strategy for recursion.

Think about the accompanying cluster: 50, 23, 9, 18, 61, 32. We have to sort this exhibit in the most effective way without utilizing additional spot (inplace arranging).

Arrangement

Stage 1:

Make any component as rotate: Decide any an incentive to be the turn from the rundown. For accommodation of code, we frequently select the furthest right record as turn or select any indiscriminately and trade with furthest right. Assume for two qualities "Low" and "High" comparing to the main file and last list individually.

For our situation low is 0 and high is 5.

Qualities at low and high are 50 and 32 and esteem at rotate is 32.

Parcel the cluster based on rotate: Call for apportioning which revises the exhibit so that turn (32) goes to its real situation (of the arranged cluster). Also, to one side of the rotate, the exhibit has all the components short of what it, and to the privilege more prominent than it.

In the segment work, we start from the principal component and contrast it and the rotate. Since 50 is more noteworthy than 32, we don't roll out any improvement and proceed onward to the following component 23.

Contrast again and the rotate. Since 23 is under 32, we trade 50 and 23. The cluster gets 23, 50, 9, 18, 61, 32

We proceed onward to the following component 9 which is again not as much as rotate (32) consequently trading it with 50 makes our exhibit as 23, 9, 50, 18, 61, 32.

Essentially, for next component 18 which is under 32, the exhibit gets 23, 9, 18, 50, 61, 32. Presently 61 is more prominent than rotate (32), consequently no changes.

Ultimately, we trade our turn with 50 so it goes to the right position.

In this way the turn (32) comes at its genuine position and all components to one side are lesser, and all components to the privilege are more noteworthy than itself.

Stage 2: The primary cluster after the initial step becomes

23, 9, 18, 32, 61, 50

Stage 3: Now the rundown is separated into two sections:

Sublist before rotate component

Sublist after rotate component

Stage 4: Repeat the means for the left and right sublists recursively. The last cluster in this way becomes

9, 18, 23, 32, 50, 61.

he following outline portrays the work process of the Quick Sort calculation which was depicted previously.

  1. he following diagram depicts the workflow of the Quick Sort algorithm which was described above.
    .

  2. The effectiveness of the Quicksort calculation especially relies upon the choice of the rotate component. We should assume the contribution of the Quicksort is an arranged cluster and we pick the furthest left component as a rotate element. In this case, we'll have two incredibly unequal exhibits. One cluster will have one component and the other one will have  elements.

    Thus, when the given input exhibit is arranged conversely and we pick the furthest right component as the rotate component, the most pessimistic scenario happens. Once more, for this situation, the turn components will part the information cluster into two lopsided exhibits.

    Aside from the over two cases, there is a unique situation when all the components in the given info cluster are the same. In such a situation, the rotate component can't partition the information exhibit into two and the time unpredictability of Quicksort increments essentially.

    Most pessimistic scenario scenario: This happens when we experience the most lopsided segments conceivable, at that point the first call takes n time, the recursive call on n-1 elements will take (n-1) time, the recursive call on (n-2) elements will take (n-2) time, etc. The most pessimistic scenario time multifaceted nature of Quick Sort would be O(n2).

Worst Case Time Complexity Analysis

Let’s assume that we choose a pivot element in such a way that it gives the most unbalanced partitions possible:

All the numbers in the case signify the size of the exhibits or the subarrays.

How about we consider an information exhibit of size . The primary parcel call takes  times to play out the segment step on the info cluster.

Each parcel step is conjured recursively from the past one. Given that, we can take the intricacy of each parcel call and summarize them to get our all out unpredictability of the Quicksort calculation.

Subsequently, the time multifaceted nature of the Quicksort calculation in most pessimistic scenario is

On the other hand, we can make a repeat connection for processing it.

In the most pessimistic scenario, after the main segment, one cluster will have  element and the other one will have  elements. We should say  denotes the time intricacy to sort  elements in the most pessimistic scenario:

Again for the base case when   and , we don't have to sort anything. Consequently, the arranging time is  and

Presently, we're prepared to fathom the repeat connection we determined before:

, , , ,  , , ,

Accordingly,

Separation and vanquish is an overall calculation plan worldview:

Gap: partition the info information S in two disjoint subsets S1 and S2

Prevail:

Repeat: understand the subproblems related with S1 and S2

Join: make the answers for S1 and S2 into an answer for S

Brisk sort is likewise an arranging calculation dependent on the separation and-overcome worldview:

Gap: pick an irregular component x (called turn) and parcel S into

L components not as much as x

E components equivalent x  G components more prominent than x

Repeat: sort L and G

Consolidate: join L, E and G

Quicksort Algorithm Given a variety of n components (e.g., numbers):

On the off chance that cluster just contains one component, return

Else

pick one component to use as turn.

Segment components into two sub-exhibits:

Components not exactly or equivalent to turn

Components more prominent than turn

Quicksort two sub-exhibits

Bring results back

Parcel Algorithm

quickSort(arr[], low, high)

{

assuming (low < high)

{

/* pi is dividing record, arr[pi] is presently

at opportune spot */

pi = partition(arr, low, high);

quickSort(arr, low, pi - 1);/Before pi

quickSort(arr, pi + 1, high);/After pi

}

}

Pseudo code for parcel()

parcel (arr[], low, high)

{

/rotate (Element to be set at right position)

rotate = arr[high];

I = (low - 1)/Index of more modest component

for (j = low; j <= high-1; j++)

{

/If current component is more modest than the rotate

in the event that (arr[j] < turn)

{

i++;/increase list of more modest component

trade arr[i] and arr[j]

}

}

trade arr[i + 1] and arr[high])

return (I + 1)

}


Related Solutions

Using an example of 6 integer elements, Show how quick sort can be done. [4 Marks]...
Using an example of 6 integer elements, Show how quick sort can be done. [4 Marks] Describe the worst case scenario of quick sort [2 Marks] In your answer at d (i), show what makes quick sort categorized as divide and conquer [2 marks]
prove the worst case of quick sort using subsetution, what is T(n) of quick sort and...
prove the worst case of quick sort using subsetution, what is T(n) of quick sort and what is the worst case for it
use quick sort to sort the following array. show each pass and what the pivot is...
use quick sort to sort the following array. show each pass and what the pivot is during the pass. please explain why you are swapping positions. do not use a compiler. 30 5 40 11 20 9 15 2 60 25 80 3 73 35 4 75 20 6
Sorting (quick) Sort the array using quick sort. Write the array content after each pass (i.e.,...
Sorting (quick) Sort the array using quick sort. Write the array content after each pass (i.e., from pass 1 to pass 7). Each pass is defined as the completion of one partition. We always pick the first array element as the pivot for each partition.
Write a program in Java to sort the given array using merge sort, quick sort, insertion...
Write a program in Java to sort the given array using merge sort, quick sort, insertion sort, selection sort and bubble sort based on the input from the user which sorting technique they wanted to use. Get the array size, array elements from the user, and also display the sorted array along with the name of the sorting technique used.
How to write a quick sort using just one recursive call in Java?
How to write a quick sort using just one recursive call in Java?
Compute the first 4 pivots using quick sort algorithm on an array A=<10,15,17,18,6,120,30,250,95>. Write the content...
Compute the first 4 pivots using quick sort algorithm on an array A=<10,15,17,18,6,120,30,250,95>. Write the content of the array A after each pivot is chosen.
I have this program, it sorts a file using shell sort and quick sort then prints...
I have this program, it sorts a file using shell sort and quick sort then prints amount of comparisons and swaps. I need to add the insertion algorithm. Here is the code. The language is Java. import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; public class Sort {    public static int numOfComps = 0,numOfSwaps = 0;     public static void main(String[] args)    {         try{        Scanner scanner = new Scanner(new File("a.txt"));//your text file here          ...
I have this program, it sorts a file using shell sort and quick sort then prints...
I have this program, it sorts a file using shell sort and quick sort then prints amount of comparisons and swaps. I need to add the bubble sort algorithm. Here is the code. The language is Java. import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; public class Sort {    public static int numOfComps = 0,numOfSwaps = 0;     public static void main(String[] args)    {         try{        Scanner scanner = new Scanner(new File("a.txt"));//your text file here       ...
implement merge sort,quick sort, and radix sort algorithms in java and test how long it will...
implement merge sort,quick sort, and radix sort algorithms in java and test how long it will take to sort with random data sets of users input numbers.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT