基于冒泡排序的qsort函数简化版(只能排数组)(全形态正在制作中)

#include
int bad(const int* a, const int* b)
{
    
    if (*a - *b > 0)
    {
        return 1;
    }
    if (*a-*b== 0)
    {
        return 0;
    }
    if (*a-*b < 0)
    {
        return -1;
    }
}
void swim(int* p1, int* p2)
{
    
    int temp;
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}
void good(int* arr, int a,  int (*bad)(const int* a, const int* b))
{
    
    int i = 0;
    int j = 0;
    for (i = 0; i < a; i=i+1)
    {
        for (j = 0; j < i; j=j+1)
        {
            int d=bad(arr + i,arr + j);
            if (d < 0)
            {
                swim(arr + i , arr + j );
            }
            
        }
    }

}
int main()
{
    int arr[5] = {1,5,6,7,4};
    good(arr, 5, bad);
    int i = 0;
    for (i = 0; i < 5; i++)
    {
        printf("%d", arr[i]);
    }
    return 0;
}
 

你可能感兴趣的:(算法,数据结构)