Deutsch   English   Français   Italiano  
<utudn7$33vr6$1@i2pn2.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news-out.netnews.com!news.alt.net!us1.netnews.com!weretis.net!feeder6.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail
From: fir <fir@grunge.pl>
Newsgroups: comp.lang.c
Subject: quicksort traume
Date: Tue, 26 Mar 2024 13:06:06 +0100
Organization: i2pn2 (i2pn.org)
Message-ID: <utudn7$33vr6$1@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 26 Mar 2024 12:05:59 -0000 (UTC)
Injection-Info: i2pn2.org;
	logging-data="3276646"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0";
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0 SeaMonkey/2.24
X-Spam-Checker-Version: SpamAssassin 4.0.0
Bytes: 1995
Lines: 44

quicksort trauma


i remmeber back then i was revriting quicksort form
wikipedia or some other poage and tested multiple
versions of it
at some moment i changed something (as i remember i
repleced do while on while this way it seemd to me
it should work but i made some mistake and some
versions were wrong and i not noticed that
- later i afair repaired that but in my
older codes i got verions which im not sure is for
sure right or not

for example this one



void QuicksortInts7(int* table, int lo, int hi)
{

     int i=lo; int j=hi;

     while (i<hi)
     {
         int pivot =table[(lo+hi)/2];
         while (i<=j)          // Partition
         {
             while (table[i]<pivot) i++;
             while (table[j]>pivot) j--;
             if (i<=j)
             {
                 int t=table[i];table[i]=table[j];table[j]=t;
                 i++; j--;
             }
         }

         if (lo < j){ QuicksortInts7(table, lo, j);} //recursion
         lo=i; j=hi;
     }
}


how can i be sure this is right?? do generation of random array
and comoper results with say qsort from c-lib is enough?