Jump to content

Sorting algorithms/Bogosort: Difference between revisions

Rename Perl 6 -> Raku, alphabetize, minor clean-up
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 122:
3 6 7 9
</pre>
 
=={{header|ALGOL 68}}==
{{trans|python}}
Line 424 ⟶ 425:
 
</lang>
 
 
 
=={{header|AutoHotkey}}==
Line 573 ⟶ 572:
printf("\n");
}</lang>
 
=={{header|C++}}==
Uses C++11. Compile with
g++ -std=c++11 bogo.cpp
<lang cpp>#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
 
template <typename RandomAccessIterator, typename Predicate>
void bogo_sort(RandomAccessIterator begin, RandomAccessIterator end,
Predicate p) {
std::random_device rd;
std::mt19937 generator(rd());
while (!std::is_sorted(begin, end, p)) {
std::shuffle(begin, end, generator);
}
}
 
template <typename RandomAccessIterator>
void bogo_sort(RandomAccessIterator begin, RandomAccessIterator end) {
bogo_sort(
begin, end,
std::less<
typename std::iterator_traits<RandomAccessIterator>::value_type>());
}
 
int main() {
int a[] = {100, 2, 56, 200, -52, 3, 99, 33, 177, -199};
bogo_sort(std::begin(a), std::end(a));
copy(std::begin(a), std::end(a), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
}</lang>
{{out}}
<pre>
-199 -52 2 3 33 56 99 100 177 200
</pre>
 
=={{header|C sharp|C#}}==
Line 661 ⟶ 623:
}
}</lang>
 
=={{header|C++}}==
Uses C++11. Compile with
g++ -std=c++11 bogo.cpp
<lang cpp>#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
 
template <typename RandomAccessIterator, typename Predicate>
void bogo_sort(RandomAccessIterator begin, RandomAccessIterator end,
Predicate p) {
std::random_device rd;
std::mt19937 generator(rd());
while (!std::is_sorted(begin, end, p)) {
std::shuffle(begin, end, generator);
}
}
 
template <typename RandomAccessIterator>
void bogo_sort(RandomAccessIterator begin, RandomAccessIterator end) {
bogo_sort(
begin, end,
std::less<
typename std::iterator_traits<RandomAccessIterator>::value_type>());
}
 
int main() {
int a[] = {100, 2, 56, 200, -52, 3, 99, 33, 177, -199};
bogo_sort(std::begin(a), std::end(a));
copy(std::begin(a), std::end(a), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
}</lang>
{{out}}
<pre>
-199 -52 2 3 33 56 99 100 177 200
</pre>
 
=={{header|Clojure}}==
Line 939 ⟶ 938:
Sorted: 1 2 3 5 7
</pre>
 
=={{header|Elena}}==
ELENA 5.0 :
Line 1,308:
lst := list(2, 1, 4, 3)
lst bogoSortInPlace println # ==> list(1, 2, 3, 4), hopefully :)</lang>
 
=={{header|J}}==
{{eff note|J|/:~}}
Line 2,053 ⟶ 2,054:
$last = $_;}
return 1;}</lang>
 
=={{header|Perl 6}}==
<lang perl6>sub bogosort (@list is copy) {
@list .= pick(*) until [<=] @list;
return @list;
}
 
my @nums = (^5).map: { rand };
say @nums.sort.Str eq @nums.&bogosort.Str ?? 'ok' !! 'not ok';
</lang>
 
=={{header|Phix}}==
Line 2,380 ⟶ 2,371:
(12 26 86 232 700 703 713 778 894 931)
</pre>
 
=={{header|Raku}}==
(formerly Perl 6)
<lang perl6>sub bogosort (@list is copy) {
@list .= pick(*) until [<=] @list;
return @list;
}
 
my @nums = (^5).map: { rand };
say @nums.sort.Str eq @nums.&bogosort.Str ?? 'ok' !! 'not ok';
</lang>
 
=={{header|REXX}}==
Line 2,972 ⟶ 2,974:
2, 6, 3, 4, 1, 5
1, 2, 3, 4, 5, 6</pre>
 
=={{header|VBScript}}==
=====Implementation=====
10,333

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.