3 ms·
Here's a solution that merges in place without any sorting: https://gist.github.com/Mononofu/5029975 https://gist.github.com/Mononofu/5029975 The basic idea is
by Inufu 14y ago
Here's a solution that merges in place without any sorting: https://gist.github.com/Mononofu/5029975 https://gist.github.com/Mononofu/5029975
The basic idea is to use the (unused) beginning of array b as swap space for the beginning of array a. This swap space needs to be shifted around, so it's of course O(n^2). Still, it was fun to write.
If you have termcolor installed ('sudo easy_install termcolor' on ubuntu), you'll see the arrays a and b as well as the swap space highlighted in color for each step. Example: http://dl.dropbox.com/u/2135523/2013022517.png http://dl.dropbox.com/u/2135523/2013022517.png
- tantaman 14y agoYep. I did say that that solution exists ^^. I just said that you couldn't do it without creating something to hold the merged result. Your solution does allocate a buffer to hold the merged result: `self.array = self.a + self.b` I wasn't saying you can't sort arrays in place (quicksort). I was saying you can't merge them in place. Somebody has to grow.