Beispiel #1
0
//测试
void Test(long array[], long length) {
    long array1[length], array2[length];
    double start;
    double end;
    
    memcpy(array1, array, length * sizeof(long));
    start = clock();
    heapSort(array1, length);
    end = clock();
    std::cout << "堆排序: " << (end - start)/CLOCKS_PER_SEC << "秒" << std::endl;

    memcpy(array2, array, length * sizeof(long));
    start = clock();
    JMSort(array2, length);
    end = clock();
    std::cout << "臻排序: " << (end - start)/CLOCKS_PER_SEC << "秒" << std::endl;
    long i;
    for (i = 0; i < length; i++) {
        if (array2[i] != array1[i]) {
            printf("错误\n");
            printfArray(array1, length);
            printfArray(array2, length);
            return;
        }
    }
    printf("通过\n");
}
Beispiel #2
0
//测试固定数组排序
void Test1() {
    long array[] = {22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70};
    long length = sizeof(array) / sizeof(long);
    printf("Test1:\n");
    printfArray(array, length);
    Test(array, length);
}
Beispiel #3
0
//测试空数组排序
void Test2() {
    long array[0];
    long length = sizeof(array) / sizeof(long);
    printf("Test2:\n");
    printfArray(array, length);
    Test(array, length);
}
Beispiel #4
0
void printReturnData(ReturnData *rdata, UserData *udata) {

    printf("tsdata: ");
    printArray(tsdata, nt);


    printf("\n\nxdata\n");
    for(int i = 0; i < nx; ++i) {
        for(int j = 0; j < nt; ++j)
            printf("%e\t", rdata->am_xdata[j +  nt * i]);
        printf("\n");
    }

    printf("\nydata\n");
    for(int i = 0; i < ny; ++i) {
        for(int j = 0; j < nt; ++j)
            printf("%e\t", rdata->am_ydata[j +  nt * i]);
        printf("\n");
    }

    printf("\n\nxdotdata: ");
    for(int i = 0; i < nx; ++i)
        printf("%e\t", rdata->am_xdotdata[i]);



    printf("\njdata\n");
    for(int i = 0; i < nx; ++i) {
        for(int j = 0; j < nx; ++j)
            printf("%e\t", rdata->am_Jdata[i + nx * j]);
        printf("\n");
    }

    printf("\nnumsteps: \t\t");
    printfArray(numstepsdata, nt, "%.0f ");
    printf("\nnumrhsevalsdata: \t");
    printfArray(numrhsevalsdata, nt, "%.0f ");
    printf("\norder: \t\t");
    printfArray(orderdata, nt, "%.0f ");
    printf("\n");
    printf("llh: %e\n", *llhdata);
}