June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -0,0 +1,32 @@
|
|||
swap := proc(arr, a, b)
|
||||
local temp;
|
||||
temp := arr[a]:
|
||||
arr[a] := arr[b]:
|
||||
arr[b] := temp:
|
||||
end proc:
|
||||
newGap := proc(gap)
|
||||
local new;
|
||||
new := trunc(gap*10/13);
|
||||
if (new < 1) then return 1; end if;
|
||||
return new;
|
||||
end proc;
|
||||
combsort := proc(arr, len)
|
||||
local gap, swapped,i, temp;
|
||||
swapped := true:
|
||||
gap := len:
|
||||
while ((not gap = 1) or swapped) do
|
||||
gap := newGap(gap):
|
||||
swapped := false:
|
||||
for i from 1 to len-gap by 1 do
|
||||
if (arr[i] > arr[i+gap]) then
|
||||
temp := arr[i]:
|
||||
arr[i] := arr[i+gap]:
|
||||
arr[i+gap] := temp:
|
||||
swapped:= true:
|
||||
end if:
|
||||
end do:
|
||||
end do:
|
||||
end proc:
|
||||
arr := Array([17,3,72,0,36,2,3,8,40,0]);
|
||||
combsort(arr, numelems(arr));
|
||||
arr;
|
||||
Loading…
Add table
Add a link
Reference in a new issue