看不懂的排序算法

以前写的排序算法,本人已经看不懂了,甚至连入参意义都看不懂了。献给在座的各位

#include <stdio.h>


#define LEN 3
void swap(int * o, int i, int j)
{
    int tmp = o[i];
    o[i] = o[j];
    o[j] = tmp;
}

void cbk_print(int * subs)
{
    printf("{");
    for(int i = 0; i < LEN; i++)
    {
        printf("%d", subs[i]);
        (i == LEN - 1) ? printf("") : printf(", "); 
    }
    printf("}\n");
}

void perm(int list[], int s, int e, void (*cbk)(int list[])) 
{     
    int i;
    if(s > e)     
    {
        (*cbk)(list);
    }
    else    
    {         
        for(i = s; i <= e; i++)
        {             
             swap(list, s, i);             
             perm(list, s + 1, e, cbk);             
             swap(list, s, i);         
        }
    }
}


int main()
{
	int list[4] = {1,2,3,4};
	int s = 0;
	int e = 2;
	perm(list, s, LEN-1, cbk_print) ;
   /* 我的第一个 C 程序 */
   printf("Hello, World! \n");
   
   return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值