Back to skills
Software Engineering

Algorithms and Data Structures

Algorithms and Data Structures: Choose a suitable algorithm under real constraints. Review the relevant code, tests, interfaces, dependency graph, and failure report and produce a solution with complexity and test cases.

---
name: software-engineering-algorithms-and-data-structures
description: Use for algorithms and data structures when asked to choose a suitable algorithm under real constraints; produce a solution with complexity and test cases.
license: MIT
metadata:
  author: Thrive
  category: software-engineering
---

# Algorithms and Data Structures

## When to use

Use this skill for algorithms and data structures when you need to choose a suitable algorithm under real constraints. The expected result is a solution with complexity and test cases.

## Boundaries

Work within the requested task and its stated acceptance criteria. Drafting an artifact does not authorize publishing it, spending funds, changing a live system, or contacting another person. Identify any such action separately before taking it.

## Inputs

Inspect the relevant code, tests, interfaces, dependency graph, and failure report. Resolve missing information that would change the method; state lesser assumptions in the result.

## Method

1. **Diagnose.** Reproduce the behavior, inspect the call graph and tests, and identify the contract that a fix must preserve.
2. **Decide.** Isolate the behavior, compare implementation options, and make a reversible change.
3. **Produce.** Build a solution with complexity and test cases from the inspected material; keep assumptions distinguishable from observed facts.

## Decision rules

- Write the smallest maintainable change that addresses the cause. Include an edge case that would fail with a superficial patch.
- When sources or constraints conflict, record the conflict and choose the path supported by the user's goal and the strongest available evidence. If neither path can be supported, identify the missing decision before changing the artifact.

## Domain rules

- Preserve public contracts or document a migration.
- Record the failure case that the change prevents.

## Verification

Verify correctness on boundary inputs and realistic sizes. Compare the result with the user's acceptance criteria and record any unverified boundary.

Return changed files, test evidence, complexity or performance notes when relevant, and any follow-up migration.

## Stop conditions

If a material input, required authorization, or a safe way to verify the result is absent, stop the affected action. Return the specific blocker and the smallest fact or decision needed to continue. Do not report an unrun check as passed.

## Output

Provide a solution with complexity and test cases. Include the decisive evidence and actual verification result. Name any artifact location and unresolved issue that affects its use.

<!--
MIT License

Copyright (c) 2026 Thrive

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-->