How to check if a given array is a sparse array in Pascal

1 Answer

0 votes
program SparseArrayCheck;

{$mode delphi}{$H+}

{
    Determines whether an array is sparse.
    Sparse means: more zero elements than non‑zero elements.
}

function IsSparse(const Arr: array of Integer): Boolean;
var
  ZeroCount: Integer;
  Value: Integer;
begin
  ZeroCount := 0;

  { Count zero elements using a clean for‑in loop }
  for Value in Arr do
    if Value = 0 then
      Inc(ZeroCount);

  { Compare zero vs non‑zero directly }
  Result := ZeroCount > (Length(Arr) - ZeroCount);
end;

var
  Data: array[0..8] of Integer = (0, 4, 0, 1, 0, 0, 0, 3, 0);

begin
  if IsSparse(Data) then
    WriteLn('Sparse array')
  else
    WriteLn('Not a sparse array');
end.


{
run:

Sparse array

}

 



answered Aug 14 by avibootz
...