Re:WikiSort – Fast, stable, O(1) space merge sort algorithm
by jmpeax on Sunday March 16, 2014 @05:49AM
(#7408823)
So, is there such a thing as a useful O(1)-space algorithm? I can't think of a single one.
[ Parent
| on HN ]
Re:WikiSort – Fast, stable, O(1) space merge sort algorithm
by repsilat on Sunday March 16, 2014 @07:31AM
(#7409055)
(Particular, individual) regular expressions can be implemented with O(1) space. Regular expressions can do lots of useful things.
Re:WikiSort – Fast, stable, O(1) space merge sort algorithm
by jmpeax on Wednesday March 26, 2014 @08:39PM
(#7477780)
This is incorrect, under deliriums pedantic interpretation of space complexity. Some regular expressions require one to accept a certain number of examples of a character. This means that storage space for the count is required, which scales logarithmically in the count.
Re:WikiSort – Fast, stable, O(1) space merge sort algorithm
by repsilat on Thursday April 03, 2014 @04:02AM
(#7521501)
This is why my comment began with the words "particular, individual". A regex like (1{5}0{3})\* can be implemented in constant space, but a language like
matches(n, m, string):
return matches((1{n}0{m})\*, string)
cannot.Just think about it -- the former is just a DFA, and so of course you can do it in constant space (provided your input stream is abstracted away, or you use a TM.
Re:WikiSort – Fast, stable, O(1) space merge sort algorithm
by JackpotDen on Monday March 17, 2014 @12:30PM
(#7416066)
int x = 0;
x++;
would be two examples.
Re:WikiSort – Fast, stable, O(1) space merge sort algorithm
by jmpeax on Wednesday March 26, 2014 @08:37PM
(#7477771)
How many times would you need to execute line 2? The more times you need to do this, the more values x needs to be able to represent. So running x++ in O(n) time means the space needed to store the accumulation grows as O(n log_2 n)... under delirium's "pedantic" interpretation of space complexity.
Unknowingly you have allowed me to stumble onto an actual algorithm with O(1) storage pace, that is, one where there are n numbers, and you want to calculated the modulo-k sum. In this case, the algorithm scales logarithmically in the constant parameter k, but O(1) in n.