/* * Arguments : double x_data[] * int x_size[1] * int idx_data[] * int idx_size[1] * Return Type : void */ void b_sort(double x_data[], int x_size[1], int idx_data[], int idx_size[1]) { int dim; dim = 2; if (x_size[0] != 1) { dim = 1; } c_sort(x_data, x_size, dim, idx_data, idx_size); }
main() { int a; int *z1, *z2, *zx; PRINT("= = = сравнение ассемблерной и —и реализаций функции пузырьковой сортировки = = =\n"); PRINT_TITLE; // выдел¤ем пам¤ть z1 = malloc(N_MAX*sizeof(int)); z2 = malloc(N_MAX*sizeof(int)); zx = malloc(N_MAX*sizeof(int)); // генерирует N_MAX случайных чисел дл¤ сортировки srand((unsigned)time(NULL)); for (a = 0; a < N_MAX; a++) z1[a] = rand(); // ставим обе функции в одинаковые услови¤ memcpy(z2, z1, N_MAX*sizeof(int)); memcpy(zx, z1, N_MAX*sizeof(int)); A_BEGIN(0); asm_sort(z1,N_MAX); memcpy(z1,zx,N_MAX*sizeof(int)); A_END(0); A_BEGIN(1); c_sort(z2,N_MAX); memcpy(z2,zx,N_MAX*sizeof(int)); A_END(1); // выводим результаты на консоль A1_OUT("ASM SORT:"); A_LIST_ITER(0); Ax_OUT("C SORT:",0,1); A_LIST_ITER(1); }