# [R] what is wrong with my quicksort?

warc conny-clauss at gmx.de
Sun Sep 4 13:18:00 CEST 2011

```the error message I get is:

Error in while (x[j] >= pivot) { : Argument has length 0

so either pivot or x[j] is NULL.
and it somestimes happens the first time the program enters the recursion,
sometimes the 6. or anywhere inbetween.

jholtman wrote:
>
> have you tried to debug it yourself.  All you said is that 'it went
> wrong'.  that is not a very clear statement of the problem.  If I were to
> start looking at it, I would put some print statements in it to see what
> is happening on eachpath and with each set of data.  Have you tried this?
>
>
> On Sep 3, 2011, at 21:51, warc <conny-clauss at gmx.de> wrote:
>
>> Hey guys,
>> I tried to program quicksort like this but somethings wrong.
>>
>>
>>
>>
>>> partition <- function(x, links, rechts){
>>>
>>>    j <- rechts
>>>    t <- 0
>>>    pivot <- sample(x[i:j],1)
>>>
>>>    while(i <= j){
>>>
>>>        while(x[i] <= pivot){
>>>            i = i+1}
>>>
>>>        while(x[j] >= pivot){
>>>            j = j-1}
>>>
>>>        if( i <= j){
>>>
>>>            t = x[i]
>>>            x[i] = x[j]
>>>            x[j] = t
>>>
>>>            i=i+1
>>>            j=j-1
>>>
>>>            }
>>>            print(pivot)
>>>
>>>
>>>        }
>>>    #Rekursion
>>>
>>>    if(i < rechts){
>>>        partition(x, i, rechts)}
>>>
>>>    return(x)
>>>    }
>>>
>>>
>>> quicksort <- function(x){
>>>
>>>
>>>
>>>        partition(x, 1, length(x))
>>> }
>>
>>
>>
>> thx
>>
>> --
>> View this message in context:
>> http://r.789695.n4.nabble.com/what-is-wrong-with-my-quicksort-tp3788681p3788681.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help