qsort:
#include <stdio.h>
#include <stdlib.h>
void Print(int num[], int len){
for(int i = 0; i < len; i ++){
printf("%d ", num[i]);
}
printf("\n");
}
int cmp_up(const void *a, const void *b){ <span style="font-family: Arial, Helvetica, sans-serif;">//记住格式</span>
return *(int *)a - *(int *)b;
}
int cmp_down(const void *a, const void *b){
return *(int *)b - *(int *)a;
}
int main()
{
int num[10] = {39, 8, 2, 7, 16, 11, 23, 9, 20, 33};
printf("Before Qsort: \n");
Print(num, 10);
qsort(num, 10, sizeof(int), cmp_up); //记住格式
printf("After Qsort(up): \n");
Print(num, 10);
qsort(num, 10, sizeof(int), cmp_down);
printf("After Qsort(down): \n");
Print(num, 10);
return 0;
}
子集生成:
#include <stdio.h>
int n, vis[10] = {0};
void dfs(int i)
{
int j;
if(i == n+1)
{
for(j = 1 ; j <= n ; j++)
{
if(vis[j])
printf("%d ", j);
}
printf("\n");
return;
}
vis[i] = 0;
dfs(i+1);
vis[i] = 1;
dfs(i+1);
}
int main()
{
scanf("%d", &n);
dfs(1);
return 0;
}