首页 新闻 会员 周边

测试简单数学算法

0
悬赏园豆:10 [已解决问题] 解决于 2021-09-13 10:33

想测试一个算法,需要一个轻量级的软件。
算法:1-10,随机进行排序,然后把结果进行输出。

可以时网页直接显示,也可以时写道本地文件。

请推荐一个便捷的软件,或者时一个简单的算法。

二十三号同学的主页 二十三号同学 | 小虾三级 | 园豆:974
提问于:2021-01-19 16:38
< >
分享
最佳答案
0

# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <time.h>

#define swap(a, b) { \
__typeof(a) _temp = a; a = b; b = _temp; \
}

#define TEST(arr, n, func, args...) { \
    int* num = (int*)malloc(sizeof(int) * n); \
    memcpy(num, arr, sizeof(int) * n); \
    output(num, n); \
    printf("%s = ", #func); \
    func(args); \
    output(num, n); \
    free(num); \
}



void quick_sort(int* num, int l, int r)
{
    if (r <= l) return;
    int x = l, y = r, z = num[l];
    while (x < y)
    {
        while (x < y && num[y] >= z) --y;
        if (x < y) num[x++] = num[y];
        while (x < y && num[x] <= z) ++x;
        if (x < y) num[y--] = num[x];
    }
    num[x] = z;
    quick_sort(num, l, x - 1);
    quick_sort(num, x + 1, r);
    return;
}

void randint(int* num, int n)
{
    while (n--) num[n] = rand() % 100;
    return;
}

void output(int* num, int n)
{
    printf("[");
    for (int i = 0; i < n; i++)
    {
        printf(" %d", num[i]);
    }
    printf("]\n");
    return;
}

int main()
{
    srand(time(0));
#define MAX_OP 20
    int arr[MAX_OP];
    randint(arr, MAX_OP);
    TEST(arr, MAX_OP, select_sort, num, MAX_OP);
    TEST(arr, MAX_OP, quick_sort, num, 0, MAX_OP - 1);
    return 0;
}
收获园豆:10
Rosiness^ | 初学一级 |园豆:47 | 2021-01-19 17:53
其他回答(2)
0

如果你用c# 推荐linqpad,写这种简单代码很合适

拓拓 | 园豆:1050 (小虾三级) | 2021-01-19 23:06
0

vscoe python

人间春风意 | 园豆:2335 (老鸟四级) | 2021-01-20 11:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册