General Permutations: Difference between revisions

From Algorithm Wiki
Jump to navigation Jump to search
(Created page with "{{DISPLAYTITLE:General Permutations (Generating Random Permutations)}} == Description == Given an input string/array, generate a single random permutation of the characters/elements of the string/array. == Related Problems == Related: Cyclic Permutations == Parameters == <pre>n: number of elements</pre> == Table of Algorithms == {| class="wikitable sortable" style="text-align:center;" width="100%" ! Name !! Year !! Time !! Space !! Approximation Factor...")
 
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 10: Line 10:
== Parameters ==  
== Parameters ==  


<pre>n: number of elements</pre>
$n$: number of elements


== Table of Algorithms ==  
== Table of Algorithms ==  
Line 28: Line 28:
|}
|}


== Time Complexity graph ==  
== Time Complexity Graph ==  


[[File:Generating Random Permutations - General Permutations - Time.png|1000px]]
[[File:Generating Random Permutations - General Permutations - Time.png|1000px]]
== Space Complexity graph ==
[[File:Generating Random Permutations - General Permutations - Space.png|1000px]]
== Pareto Decades graph ==
[[File:Generating Random Permutations - General Permutations - Pareto Frontier.png|1000px]]

Latest revision as of 10:07, 28 April 2023

Description

Given an input string/array, generate a single random permutation of the characters/elements of the string/array.

Related Problems

Related: Cyclic Permutations

Parameters

$n$: number of elements

Table of Algorithms

Name Year Time Space Approximation Factor Model Reference
Fisher–Yates/Knuth shuffle 1938 $O(n^{2})$ $O(n)$ Exact Randomized Time
Durstenfeld's Algorithm 235 1964 $O(n)$ $O({1})$ Exact Randomized Time
Radix sorting method 1887 $O(n)$ $O(n)$ Exact Randomized

Time Complexity Graph

Generating Random Permutations - General Permutations - Time.png