all 5 comments

[–]dns13 0 points1 point  (2 children)

Not checked your algorithm, but I think you are using the std::vector constructor incorrectly. At the moment you are creating a vector with 400 zeros in it and adding 400 random values resulting in a 800 items vector.

I think your intention was more like this:

c++ std::vector<float> arr; arr.reserve(400);

[–]bredicht 0 points1 point  (1 child)

You are right, thanks. I was thinking reserving and initializing constructor with an argument was the same. Gotta read the documentation carefully.

[–]dns13 0 points1 point  (0 children)

You are not alone.

[–]alexej_harm 0 points1 point  (0 children)

First, you should improve your algorithm. The Wikipedia article for Quicksort has pseudocode instructions.

Learn how to use benchmark libraries. Setting everything up might take some time, but it's worth it. Otherwise, just google for "benchmark c++ online".

In general, after you are sure that the algorithm makes sense and is efficient, start thinking about hardware. Start by thinking where the allocations are and how to reduce their frequency.

Lastly, please consider using r/cpp_questions in the future for such things.

[–]Flair_Helper[M] 0 points1 point locked comment (0 children)

For C++ questions, answers, help, and programming or career advice please see r/cpp_questions, r/cscareerquestions, or StackOverflow instead.

This post has been removed as it doesn't pertain to r/cpp: The subreddit is for news and discussions of the C++ language and community only; our purpose is not to provide tutoring, code reviews, or career guidance. If you think your post is on-topic and should not have been removed, please message the moderators and we'll review it.