Git Product home page Git Product logo

ayogun / push_swap Goto Github PK

View Code? Open in Web Editor NEW
81.0 81.0 4.0 4.48 MB

This project will make you sort data on a stack, with a limited set of instructions, using the lowest possible number of actions. To succeed you’ll have to manipulate various types of algorithms and choose the most appropriate solution (out of many) for an optimized data sorting.

C 95.59% Makefile 4.41%
42 c push-swap sorting sorting-algorithms

push_swap's Introduction

Hi there


  Latest Medium Blog Posts

  Latest Dev.to Blog Posts




📈  Language / Framework Stats

push_swap's People

Contributors

ayogun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

push_swap's Issues

Wrong evaluation sheet

Awesome work with this project. Just to point out that the evaluation sheet is for the so_long project, no push_swap.

It requires version update

This is the older version. I am looking for the updated one, lol. Hence, there can be errors. Please, double check.

Big thanks to Ayogun for this idea and suggestion for other people doing this project

I did this project. I read your approach and copied it. I did not look at your code (maybe a little bit, but not enough to understand something and not to copy something).

Also my strong recommendation for anybody else who wants to follow this approach, do not look at the code. You have the blog explaining how it works. Write your own algorithm. If you are stuck, printf is your friend. You should get it to work over some way with only that, even if it's not sorting correctly yet. If it's not sorting correctly, use the visualizer. Very, very useful. Take small samples, like only 5 numbers, maybe 10 or 20 depending on the problem, but in a range that you can still manually follow what it does.

So with the visualizer, if I saw that at some point it was moving elements in a way that should not happen, I used the stack size to print the information I needed only for that part. I got it to work, just had too many moves for 500 numbers.
That was the first time that I downloaded this repo and used the visualizer on both to compare them step by step. Mine was doing pretty much the exact same thing. And then there were steps where mine was taking longer moves. Helped me to check what the moves were at that point and why it was taking them (wrong if condition of course...)

So now I have my own version of this algo, I think mine is even a little bit better. Definitely faster. I think because of checking duplicates. Wrote me a test script to run the program like 100 times with 500 random numbers and calculated the average amount of moves, giving me the max and min amount and the time it took to run all of them.

Still have to do some refactoring in the following days to match the norm tho. Also, my project has the same small issue that it is possible to go over 5500 moves for 500 numbers, same as this repo does. I have some ideas that could possibly solve that. One harder than the other. Don't know if that is worth the effort since my average is like 5100 operations. One might not be that hard, maybe I give it a try.

If anybody still wants to look at the code, even tho I strongly discourage you if you still plan on doing the project yourself, here is my repo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.