TIP: Click on subject to list as thread! ANSI
echo: c_echo
to: DAVID NOON
from: KURT KUZBA
date: 1998-04-29 00:56:00
subject: bubble/select 1/2

DN> JP>   That *is* genine Bubble Sort.
DN>   No, it is a selection sort, with a variant of [unnecessarily]
DN>   exchanging prior to completing the current selection.
   This might clear it all up, with or without contact lenses! :)
/*   bbl_slct.c   PUBLIC DOMAIN   part 1 of 2  */
#include 
#include 
#include 
void bubblesort(int *array, int elements)
{
   int bubble, dubble, toil, trouble, reverse;
   reverse = (elements < 0) ? 1 : 0;
   elements = reverse ? -elements : elements;
   toil = elements - 1;
   if(reverse)
   {
      do   {
         for(trouble = bubble = 0; bubble < toil; bubble++)
         {
            if(array[bubble] < array[bubble + 1])
            {
               dubble = array[bubble];
               array[bubble] = array[trouble = bubble + 1];
               array[bubble + 1] = dubble;
            }
         }
      }   while(trouble);
   }
   else
   {
      do   {
         for(trouble = bubble = 0; bubble < toil; bubble ++)
         {
            if(array[bubble] > array[bubble + 1])
            {
               dubble = array[bubble];
               array[bubble] = array[trouble = bubble + 1];
               array[bubble + 1] = dubble;
            }
         }
      }   while(trouble);
   }
}
void selectionsort(int *array, int elements)
{
   int outer, inner, swap, tmp, end, reverse;
   reverse = (elements < 0) ? 1 : 0;
   elements = reverse ? -elements : elements;
   end = elements - 1;
   if(reverse)
   {
      for(outer = 0; outer < end; outer++)
      {
         swap = outer;
         for(inner = outer; inner < elements; inner++)
            if(array[swap] < array[inner])
               swap = inner;
         if(swap > outer)
         {
            tmp = array[outer];
            array[outer] = array[swap];
            array[swap] = tmp;
         }
      }
   }
   else
   {
      for(outer = 0; outer < end; outer++)
      {
         swap = outer;
         for(inner = outer; inner < elements; inner++)
            if(array[swap] > array[inner])
               swap = inner;
         if(swap > outer)
         {
            tmp = array[outer];
            array[outer] = array[swap];
            array[swap] = tmp;
         }
      }
   }
}
/*   end   bbl_slct.c   PUBLIC DOMAIN   part 1 of 2   */
> ] You're trying to make me paranoid, but I'm on to your tricks
---
---------------
* Origin: *YOPS ]I[* 8.4 GIG * RA/FD/FE * Milwaukee, WI (1:154/750)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.