File tree Expand file tree Collapse file tree 1 file changed +69
-0
lines changed
Expand file tree Collapse file tree 1 file changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+ # Cycle Sort
2+
3+ #### Problem Statement
4+
5+ Given an unsorted array of n elements, write a function to sort the array
6+
7+ #### Approach
8+
9+ - If the element is already at its correct position do nothing
10+ - Otherwise, find the correct position of a by counting the total number of elements that are less than current element
11+ - Insert current element into its correct position
12+ - Set replaced element as new current element and find its correct position
13+ - Continue process until array is sorted
14+
15+ #### Time Complexity
16+
17+ ` O(n^2) ` Worst case performance
18+
19+ ` O(n^2) ` Best-case performance
20+
21+ ` O(n^2) ` Average performance
22+
23+ #### Space Complexity
24+
25+ ` O(n) ` Worst case
26+
27+ #### Application of algorithm
28+
29+ - Cycle sort algorithm is useful for situations where memory write or element swap operations are costly.
30+
31+ #### Example
32+
33+ A single cycle of sorting array | b | d | e | a | c |
34+
35+ ```
36+ 1. Select element for which the cycle is run, i.e. "b".
37+
38+ |b|d|e|a|c|
39+
40+ b - current element
41+
42+ 2. Find correct location for current element and update current element.
43+
44+ |b|b|e|a|c|
45+
46+ d - current element
47+
48+ 3. One more time, find correct location for current element and update current element.
49+
50+ |b|b|e|d|c|
51+
52+ a - current element
53+
54+ 4. Current element is inserted into position of initial element "b" which ends the cycle.
55+
56+ |a|b|e|d|c|
57+
58+ a - current element
59+
60+ 5. New cycle should be started for next element.
61+ ```
62+
63+ #### Video Explanation
64+
65+ [ A video explaining the Cycle Sort Algorithm] ( https://www.youtube.com/watch?v=gZNOM_yMdSQ )
66+
67+ #### The Algorithms Page
68+
69+ [ Cycle Sort] ( https://the-algorithms.com/algorithm/cycle-sort )
You can’t perform that action at this time.
0 commit comments