How to check if a given array is a sparse array in C++

1 Answer

0 votes
#include <iostream>
#include <algorithm>

/*
    Determines whether an array is sparse.
    Sparse means: more zero elements than non‑zero elements.
*/
bool is_sparse(const int arr[], std::size_t size) {
    // Count zero elements using std::count
    std::size_t zero_count = std::count(arr, arr + size, 0);

    // Compare zero vs non‑zero directly
    return zero_count > (size - zero_count);
}

int main() {
    int data[] = {0, 4, 0, 1, 0, 0, 0, 3, 0};
    std::size_t size = sizeof(data) / sizeof(data[0]);

    if (is_sparse(data, size))
        std::cout << "Sparse array\n";
    else
        std::cout << "Not a sparse array\n";
}


/*
run:

Sparse array

*/

 



answered Apr 23 by avibootz
edited Aug 14 by avibootz
...