Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
|
|
@ -0,0 +1,26 @@
|
|||
def knuthShuffle(items : Array)
|
||||
i = items.size-1
|
||||
while i > 1
|
||||
j = Random.rand(0..i)
|
||||
items.swap(i, j)
|
||||
|
||||
i -= 1
|
||||
end
|
||||
end
|
||||
|
||||
def sorted?(items : Array)
|
||||
prev = items[0]
|
||||
items.each do |item|
|
||||
if item < prev
|
||||
return false
|
||||
end
|
||||
prev = item
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
def bogoSort(items : Array)
|
||||
while !sorted?(items)
|
||||
knuthShuffle(items)
|
||||
end
|
||||
end
|
||||
|
|
@ -18,7 +18,7 @@ extension op
|
|||
|
||||
public program()
|
||||
{
|
||||
var list := new int[]{3, 4, 1, 8, 7, -2, 0};
|
||||
var list := new int[]::(3, 4, 1, 8, 7, -2, 0);
|
||||
|
||||
console.printLine("before:", list.asEnumerable());
|
||||
console.printLine("after :", list.bogoSorter().asEnumerable())
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
bogo_sort(L,Rl) :-
|
||||
min_list(L,Min),
|
||||
repeat,
|
||||
random_permutation(L,Rl),
|
||||
is_sorted(Rl,Min),
|
||||
!.
|
||||
|
||||
is_sorted([],_).
|
||||
is_sorted([N|T],P) :-
|
||||
N >= P,
|
||||
is_sorted(T,N).
|
||||
Loading…
Add table
Add a link
Reference in a new issue