{"id":26245051,"url":"https://github.com/deryaxacar/42-push_swap","last_synced_at":"2025-10-30T08:35:59.958Z","repository":{"id":251472788,"uuid":"741643374","full_name":"deryaxacar/42-Push_swap","owner":"deryaxacar","description":"This project aims to develop the most efficient algorithm to sort a sequence of numbers in the fewest steps possible. The sorting process is optimized using stack data structures, and data is transferred between two stacks. Various sorting algorithms (Bubble Sort, Quick Sort, etc.) are evaluated to select the most suitable one. The project provides","archived":false,"fork":false,"pushed_at":"2025-02-25T16:09:51.000Z","size":1594,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T02:22:35.810Z","etag":null,"topics":["42","42-push-swap","42-school","42born2code","42cursus","42projects","42pushswap","42school","buble-sort","push-swap","quicksort","sorting-algorithms"],"latest_commit_sha":null,"homepage":"https://github.com/deryaxacar/42-Push_swap","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deryaxacar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-10T20:16:40.000Z","updated_at":"2025-02-25T16:09:54.000Z","dependencies_parsed_at":"2025-03-13T12:41:08.807Z","dependency_job_id":null,"html_url":"https://github.com/deryaxacar/42-Push_swap","commit_stats":null,"previous_names":["deryaxacar/42-push_swap"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-Push_swap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-Push_swap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-Push_swap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-Push_swap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deryaxacar","download_url":"https://codeload.github.com/deryaxacar/42-Push_swap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250489235,"owners_count":21438936,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42","42-push-swap","42-school","42born2code","42cursus","42projects","42pushswap","42school","buble-sort","push-swap","quicksort","sorting-algorithms"],"created_at":"2025-03-13T12:29:43.830Z","updated_at":"2025-10-30T08:35:59.953Z","avatar_url":"https://github.com/deryaxacar.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Project Title --\u003e\n\u003ch1 align=\"center\"\u003e42 - Push_swap 🧮\u003c/h1\u003e\n\n\u003c!-- Project Description --\u003e\n\u003cp align=\"center\"\u003e\nThis project aims to develop the most efficient algorithm to sort a sequence of numbers in the fewest possible steps. Using stack data structures, the sorting operation is optimized by transferring data between two stacks. Various sorting algorithms (Bubble Sort, Quick Sort, etc.) are evaluated, and the most suitable one is selected. The project provides insight into algorithm design and effective use of data structures while offering performance advantages. 🔍📊\n\u003c/p\u003e\n\n\u003c!-- Project Logo or Image --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca target=\"blank\"\u003e\u003cimg src=\"https://github.com/deryaxacar/42-Push_swap/blob/main/push_swap.png\" height=\"150\" width=\"150\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## 🎯 Project Objective\n\nThe main goal of the Push_swap project is to develop the most effective algorithm to sort a given sequence of numbers with the minimum number of operations. This is achieved by using stack data structures and various sorting algorithms.\n\nStack structures play a crucial role in organizing and managing data during the sorting process. These structures operate on a \"last in, first out\" (LIFO) principle and are used to enhance the efficiency of sorting algorithms. By utilizing two separate stacks, data is transferred between them, making the sorting process more efficient and structured.\n\nThe project involves a detailed analysis of sorting algorithm performance. It includes simple algorithms (Bubble Sort, Insertion Sort) as well as more complex ones (Quick Sort, Merge Sort). Each method is evaluated for its advantages and disadvantages, helping determine which algorithm yields the best performance.\n\nPush_swap offers deep insights into algorithm design, data structures, and performance optimization. Effective use of stacks and understanding algorithmic efficiency contribute significantly to software development skills and provide real-world benefits in terms of performance and scalability.\n\n### 📈 Key Goals\n- **Efficient Sorting:** Develop an algorithm that can sort a given sequence of numbers in the fewest steps.\n- **Use of Stacks:** Implement sorting using two separate stacks.\n- **Algorithm Optimization:** Identify and apply the most optimal sorting algorithm.\n\n## 💡 Commands Used\n\nHere are some of the main commands used in the Push_swap project:\n\n- **`sa`**: Swap the first two elements of stack `a`. 🔄  \n- **`sb`**: Swap the first two elements of stack `b`. 🔄  \n- **`pa`**: Push the top element from stack `b` to stack `a`. ↔️  \n- **`pb`**: Push the top element from stack `a` to stack `b`. ↔️  \n- **`ra`**: Rotate all elements of stack `a` upwards by one position. 🔁  \n- **`rb`**: Rotate all elements of stack `b` upwards by one position. 🔁  \n- **`rra`**: Reverse rotate all elements of stack `a` by one position. 🔙  \n- **`rrb`**: Reverse rotate all elements of stack `b` by one position. 🔙  \n- **`rr`**: Rotate both stacks `a` and `b` upwards by one position. 🔁🔁  \n- **`rrr`**: Reverse rotate both stacks `a` and `b` by one position. 🔙🔙  \n\nThese commands are used within the sorting algorithm to manage the stacks and move data efficiently.\n\n## 📋 Requirements\n\nTo run the Push_swap project, ensure the following:\n\n- Unix-based operating system (Linux, macOS) 🖥️  \n- GCC compiler 🛠️  \n\n## 🔧 Installation\n\nFollow these steps to run the project locally:\n\n1. Clone the repository:  \n   `git clone https://github.com/username/push_swap.git`\n2. Navigate to the project directory:  \n   `cd push_swap`\n3. Compile the project using the Makefile:  \n   `make`\n\n## 🗸 Usage\n\nTo perform a sorting operation, follow these steps:\n\n1. Run the program and pass the numbers you want to sort as arguments:\n   ```bash\n   ./push_swap [number1] [number2] [number3] ...\n\n---\n\n\u003cp align=\"center\"\u003e2025 This project was created by Derya ACAR.\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderyaxacar%2F42-push_swap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderyaxacar%2F42-push_swap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderyaxacar%2F42-push_swap/lists"}