https://github.com/cypri1-dev/42_push_swap
Push Swap is a sorting algorithm project in C. It involves sorting a stack of integers using a limited set of operations.
https://github.com/cypri1-dev/42_push_swap
42 bonus mandatory pushswap pushswap-42 pushswap42 sorted
Last synced: 10 months ago
JSON representation
Push Swap is a sorting algorithm project in C. It involves sorting a stack of integers using a limited set of operations.
- Host: GitHub
- URL: https://github.com/cypri1-dev/42_push_swap
- Owner: cypri1-dev
- Created: 2024-02-24T16:42:48.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-10T21:38:33.000Z (about 2 years ago)
- Last Synced: 2025-02-01T14:18:16.057Z (over 1 year ago)
- Topics: 42, bonus, mandatory, pushswap, pushswap-42, pushswap42, sorted
- Language: C
- Homepage:
- Size: 55.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
##
## Description
Push Swap is a sorting algorithm project in C. It involves sorting a stack of integers using a limited set of operations. The goal is to arrange the numbers in ascending order using two stacks and a set of rules for manipulating the elements.
## Project Components Table
The following table describes the various components and files included in the Push Swap project:
| File/Header File/Folder | Description |
|----------------------|-----------------------------------------------------------------------------------------------------|
| `push_swap.c` | The main file containing the implementation of the Push Swap algorithm. |
| `parsing_args.c` | Handles argument parsing for the Push Swap project. |
| `end_sort.c` | Contains functions to handle the end of sorting process in the Push |
| `algorithm` | Implements the sorting algorithm for the Push Swap project. |
| `exec` | Executes the sorting instructions on the stack. |
| `instructions` | Contains the implementation of stack manipulation |
| `libft` | A directory containing the Libft library, used for some auxiliary functions. |
| `Makefile` | The Makefile script for automating project compilation. |
## Installation and Compilation
1. Clone this repository into your project:
```bash
git clone https://github.com/cypri1-dev/42_push_swap.git
cd 42_push_swap
```
## How to use ?
```bash
./push_swap [random_numbers]
```
## Features
The Push Swap project offers the following features:
- **Sorting Algorithms**: Implements efficient sorting algorithms to order a stack of integers in ascending order.
- **Instruction Management**: Provides a variety of stack manipulation instructions such as "push", "swap", "rotate", and "reverse rotate" to sort the stack according to specified rules.
- **Sorting Verification**: Verifies if the stack is correctly sorted after executing sorting operations to ensure the accuracy of the algorithm.
- **Performance Optimization**: Searches for the most efficient instruction sequences to minimize the total number of operations required to sort the stack.
- **Easy Customization**: Offers the ability to customize and extend functionalities by adding new sorting algorithms or modifying stack manipulation instructions.
- **Norminette Compatibility**: Adheres to coding and style standards defined by the norminette to ensure code consistency and readability.