Data update

This commit is contained in:
Ingy döt Net 2026-04-30 12:34:36 -04:00
parent 4bb20c9b71
commit cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions

View file

@ -0,0 +1,38 @@
with Ada.Text_Io; use Ada.Text_Io;
procedure Max_Subarray is
type Int_Array is array (Positive range <>) of Integer;
Empty_Error : Exception;
function Max(Item : Int_Array) return Int_Array is
Start : Positive;
Finis : Positive;
Max_Sum : Integer := Integer'First;
Sum : Integer;
begin
if Item'Length = 0 then
raise Empty_Error;
end if;
for I in Item'range loop
Sum := 0;
for J in I..Item'Last loop
Sum := Sum + Item(J);
if Sum > Max_Sum then
Max_Sum := Sum;
Start := I;
Finis := J;
end if;
end loop;
end loop;
return Item(Start..Finis);
end Max;
A : Int_Array := (-1, -2, 3, 5, 6, -2, -1, 4, -4, 2, -1);
B : Int_Array := Max(A);
begin
for I in B'range loop
Put_Line(Integer'Image(B(I)));
end loop;
exception
when Empty_Error =>
Put_Line("Array being analyzed has no elements.");
end Max_Subarray;

View file

@ -0,0 +1,36 @@
Local $iArray[11] = [-1, -2, 3, 5, 6, -2, -1, 4, -4, 2, -1]
GREAT_SUB($iArray)
Local $iArray[5] = [-1, -2, -3, -4, -5]
GREAT_SUB($iArray)
Local $iArray[15] = [7, -6, -8, 5, -2, -6, 7, 4, 8, -9, -3, 2, 6, -4, -6]
GREAT_SUB($iArray)
Func GREAT_SUB($iArray)
Local $iSUM = 0, $iBEGIN_MAX = 0, $iEND_MAX = -1, $iMAX_SUM = 0
For $i = 0 To UBound($iArray) - 1
$iSUM = 0
For $k = $i To UBound($iArray) - 1
$iSUM += $iArray[$k]
If $iSUM > $iMAX_SUM Then
$iMAX_SUM = $iSUM
$iEND_MAX = $k
$iBEGIN_MAX = $i
EndIf
Next
Next
ConsoleWrite("> Array: [")
For $i = 0 To UBound($iArray) - 1
If $iArray[$i] > 0 Then ConsoleWrite("+")
ConsoleWrite($iArray[$i])
If $i <> UBound($iArray) - 1 Then ConsoleWrite(",")
Next
ConsoleWrite("]" & @CRLF & "+>Maximal subsequence: [")
$iSUM = 0
For $i = $iBEGIN_MAX To $iEND_MAX
$iSUM += $iArray[$i]
If $iArray[$i] > 0 Then ConsoleWrite("+")
ConsoleWrite($iArray[$i])
If $i <> $iEND_MAX Then ConsoleWrite(",")
Next
ConsoleWrite("]" & @CRLF & "!>SUM of subsequence: " & $iSUM & @CRLF)
EndFunc ;==>GREAT_SUB

View file

@ -0,0 +1,22 @@
function maxSubseq(sequence s)
integer sum, maxsum, first, last
maxsum = 0
first = 1
last = 0
for i = 1 to length(s) do
sum = 0
for j = i to length(s) do
sum += s[j]
if sum > maxsum then
maxsum = sum
first = i
last = j
end if
end for
end for
return s[first..last]
end function
? maxSubseq({-1, -2, 3, 5, 6, -2, -1, 4, -4, 2, -1})
? maxSubseq({})
? maxSubseq({-1, -5, -3})

View file

@ -0,0 +1,32 @@
local function gss(s)
local best = 0
local start = 1
local finish = 1
local sum = 0
local sum_start = 1
for i, x in s do
sum += x
if sum > best then
best = sum
start = sum_start
finish = i + 1
elseif sum < 0 then
sum = 0
sum_start = i + 1
end
end
return s:slice(start, finish - 1), best
end
local tests = {
{-1, -2, 3, 5, 6, -2, -1, 4, -4, 2, -1},
{-1, 1, 2, -5, -6},
{},
{-1, -2, -1}
}
for tests as test do
print($"Input: \{{test:concat(", ")}}")
local subseq, sum = gss(test)
print($"Sub seq: \{{subseq:concat(", ")}}")
print($"Sum: {sum}\n")
end