Sorting Runtimes Flashcards

1
Q

What is Quicksorts best, worst and average runtimes? Is it stable and in-place?

A

Best: n log n

Worst: n²

Average: n log n

Stable: Not stable but can be

In-place: Yes

note:

  • stable means to not have the order of 2 equal keys changed i.e. if 5D and 5H were in the initial input array in this order the output array should always hold 5D and 5H one after the other (not 5H, 5D)
  • in-place means to output, for example, an array of the same size as the input and thus not wasting memory.

If the list is implemented as an array, this can be done in-place and with at most n comparisons

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Merge Sorts best, worst and average runtimes? Is it stable and in-place?

A

Best, worst and avg are all

n log n

Stable: Mostly

In-place: No

In any case the number of comparisons is in Θ(n)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Heap Sorts best, worst and average runtimes? Is it stable and in-place?

A

Best, worst and avg are all

n log n

Stable: No

In-place: Sure?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is BubbleSorts best, worst and average runtimes? Is it stable and in-place?

A

Best: n

Worst: n²

Avg: n²

Stable: Yes

In-place: Yes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Insertion Sorts best, worst and average runtimes? Is it stable and in-place?

A

Best: n

Worst: n²

Avg: n²

Stable: Yes

In-place: Yes

  • It works well on small lists, or lists that are nearly sorted*
  • number of inversions is n(n − 1)/2 in the worst case ​*(where input is in reverse sorted order)
  • 0 in the best case (input is already sorted)*
  • about n(n − 1)/4 on average case*
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is Selection Sorts best, worst and average runtimes? Is it stable and in-place?

A

Best, worst and avg are all

Stable: No

In-place: Yes

In practice, it is not as fast as insertion sort

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Shell Sort

A

Almost nothing is known about average-case running time of Shellsort.

O(n 7/6 ) avg case

Values of h chosen from all relevant numbers of the form 2 i3 j have been proved to give O(n(log n) 2 ) running time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Mergesort recurrence I

A

C(n) = 2C(n/2) + n

= 2(2C(n/4) + n/2) + n

= 4C(n/4) + 2n = . . .

= 2kC(1) + kn

= n lg n.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quicksort recurrence

A

Θ(nlogn)

if 1/n instead of 2/n we get

Θ(nl)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly