void randomized_quick_sort(int data[], int p, int r)
{
    if (p < r) {
        int q = partition(data, p , r);
        randomized_quick_sort(data, p, q - 1);
        randomized_quick_sort(data, q + 1, r);
    }
}
예제 #2
0
void randomized_quick_sort(int *ap, int p, int r)
{
    if (p < r) {
        int q = randomized_partition(ap, p, r);
        randomized_quick_sort(ap, p, q - 1);
        randomized_quick_sort(ap, q + 1, r);
    }
}
int main() {
    int data[] = {0, 4, 1, 3, 2, 16, 9, 10, 14, 8, 7};
    int count = sizeof(data)/sizeof(int);

    randomized_quick_sort(data, 0, count - 1);

    int i = 0;
    for(; i < count; i++)
        printf("%d\t", data[i]);
    printf("\n");
    return 0;
}
예제 #4
0
파일: test.c 프로젝트: 4179e1/misc
int main (void)
{
	int array1[] = {5, 2, 4, 6, 1, 3};
	printf ("Insert Sort\n");
	insert_sort (array1, ARRAY_LEN(array1));
	print_array (array1, ARRAY_LEN(array1));

	int array2[] = {5, 2, 4, 6, 1, 3};
	printf ("Selection Sort\n");
	selection_sort (array2, ARRAY_LEN (array2));
	print_array (array2, ARRAY_LEN (array2));


	int array3[] = {5, 2, 4, 6, 1, 3};
	printf ("Merge Sort\n");
	merge_sort (array3, 0, ARRAY_LEN(array3) - 1);
	print_array (array3, ARRAY_LEN(array3));

	int array4[] = {5, 2, 4, 6, 1, 3};
	printf ("Bubble sort\n");
	bubble_sort (array4, ARRAY_LEN(array4));
	print_array (array4, ARRAY_LEN(array4));

	int arrayz[] = {7, 0, 9, 3, 9, 4};
	printf ("quick sort\n");
	quick_sort (arrayz, 0, ARRAY_LEN(arrayz) - 1);
	print_array (arrayz, ARRAY_LEN(arrayz));

	int array6[] = {2, 8, 7, 1, 3, 5, 6};
	printf ("randomized quick sort\n");
	randomized_quick_sort (array6, 0, ARRAY_LEN(array6) - 1);
	print_array (array6, ARRAY_LEN(array6));

	int array7[] = {2, 8, 7, 1, 3, 5, 6};
	printf ("tail quick sort\n");
	tail_quick_sort (array7, 0, ARRAY_LEN(array7) - 1);
	print_array (array7, ARRAY_LEN(array7));

	int a[] = {2, 5, 3, 0, 2, 3, 0, 3};
	int b[ARRAY_LEN(a)];
	memset (b, 0, sizeof(b));
	printf ("counting sort\n");
	counting_sort (a, b, ARRAY_LEN(a), ARRAY_LEN(b), 5);
	print_array (b, ARRAY_LEN(b));

	return 0;
}
예제 #5
0
int main(int argc, char *argv[])
{
    int A[] = {2, 8, 7, 1, 3, 5, 6, 4};
    int n = sizeof(A) / sizeof(int);
    printf("\nBefore quick sorting:\n");
    printArray(A, n);

    quick_sort(A, 0, n - 1);

    printf("\nAfter quick sorting:\n");
    printArray(A, n);

    int B[] = {2, 8, 7, 1, 3, 5, 6, 4};
    int m = sizeof(B) / sizeof(int);
    printf("\nBefore randomized quick sorting:\n");
    printArray(B, m);

    randomized_quick_sort(B, 0, m - 1);

    printf("\nAfter randomized quick sorting:\n");
    printArray(B, m);

    return 0;
}