void run_sorts(buf *buf) { fill(buf); while(1) { int r = rand_from(0, 4); fisher_yates_shuffle(buf, 0, buf->length-1); switch (r) { case 0: printf("Insertion Sort.\n"); insertion_sort(buf, 0, buf->length-1); break; case 1: printf("Quick Sort.\n"); quicksort(buf, 0, buf->length-1); break; case 2: printf("Heap Sort.\n"); heap_sort(buf, 0, buf->length-1); break; case 3: printf("Selection Sort.\n"); selection_sort(buf, 0, buf->length-1); break; case 4: printf("Merge Sort.\n"); merge_sort(buf, 0, buf->length-1); break; } } }
static void test_reorder (void) { guint n = g_test_perf () ? 1000000 : 100; GtkRBTree *tree; GtkRBNode *node; gint *reorder; guint i; double elapsed; reorder = fisher_yates_shuffle (n); tree = create_unsorted_tree (reorder, n); g_test_timer_start (); _gtk_rbtree_reorder (tree, reorder, n); elapsed = g_test_timer_elapsed (); if (g_test_perf ()) g_test_minimized_result (elapsed, "reordering rbtree with %u items: %gsec", n, elapsed); _gtk_rbtree_test (tree); for (node = _gtk_rbtree_first (tree), i = 0; node != NULL; node = _gtk_rbtree_next (tree, node), i++) { g_assert (GTK_RBNODE_GET_HEIGHT (node) == i); } g_assert (i == n); _gtk_rbtree_free (tree); }
void zscore_explicitly_shuffled(const char *seq, double *avg, double *stdv, int type){ unsigned int n = 1000; unsigned int counter; unsigned int length = strlen(seq); char *tmp = (char *) space((unsigned) length+1); char *shuff = (char *) space((unsigned) length+1); char *structure = (char *) space((unsigned) length+1); float *energies = (float*) space(sizeof(float) * n); float mean = 0; float sd = 0; /* generate seed from time */ srand((unsigned)time(NULL)); strcpy(tmp, seq); /*printf("INHERE\n");*/ for (counter = 0; counter < n; counter++) { if (type == 1) fisher_yates_shuffle(tmp,length,shuff); if (type == 3) altschul_erickson_shuffle(tmp,length,shuff); energies[counter] = fold(shuff, structure); free_arrays(); mean = mean + energies[counter]; } mean = (float) mean/n; for (counter = 0; counter < n; counter++) { sd += (energies[counter]-mean)*(energies[counter]-mean); } sd = (float) sd/(n-1); sd = sqrt(sd); *avg = (double) mean; *stdv = (double) sd; free(energies); free(tmp); free(shuff); free(structure); }
void bogo_sort(buf *buf, int low, int high) { while (!is_sorted(buf, low, high)) { fisher_yates_shuffle(buf, low, high); } }