void bubble(int work[],size_t size,int(*compare)(int a,int b))
{
void swap(int *element1Ptr,int *element2Ptr);
for(unsigned int pass=1;pass<size;++pass){
for(size_t count=0;count<=size-1;++count){
if((*compare)(work[count],work[count+1])){
swap(&work[count],&work[count+1]);
}
}
}
}
void swap(int *element1Ptr,int *element2Ptr)
{
int hold=*element1Ptr;
*element1Ptr=*element2Ptr;
*element2Ptr=hold;
}
int ascending(int a,int b)
{
return b<a;//should swap if b<a;
}
int descending(int a,int b)
{
return b>a;//should swap if b>a;
}