int main(void)
{
    printf("The size of numbers, please?");
    int numCount;
    scanf("%d", &numCount);

    int *nums = malloc(sizeof(int) * numCount);
    printf("Please input integers:");

    for (int i = 0; i < numCount; i++) {
        scanf("%d", &nums[i]);
    }
    printf("\n");

    printf("Before being sorted :");
    printNums(numCount, nums);

    BucketSort(numCount, nums);

    printf("After being sorted :");
    printNums(numCount, nums);

    // dont forget to free space
    free(nums);

    printf("Please press any key to exit");
    getchar();
    getchar();
}
Example #2
0
// -----------------------------------------------------------------------------
bool Algorithms::Test_BucketSort()
{
    bool pass = true;

    {
        int a[] = {};
        std::vector<int> v = vec_transform(a, sizeof(a) / sizeof(int));
        BucketSort(v);
        pass = pass && vec_equal(v, a, sizeof(a) / sizeof(int));
    }

    {
        int a[] = {1};
        std::vector<int> v = vec_transform(a, sizeof(a) / sizeof(int));
        BucketSort(v);
        pass = pass && vec_equal(v, a, sizeof(a) / sizeof(int));
    }

    {
        int a[] = {1, 2};
        std::vector<int> v = vec_transform(a, sizeof(a) / sizeof(int));
        BucketSort(v);
        pass = pass && vec_equal(v, a, sizeof(a) / sizeof(int));
    }

    {
        int a[] = {2, 1};
        std::vector<int> v = vec_transform(a, sizeof(a) / sizeof(int));
        BucketSort(v);
        int b[] = {1, 2};
        pass = pass && vec_equal(v, b, sizeof(b) / sizeof(int));
    }

    {
        int a[] = {5, 5, 5, 5, 5};
        std::vector<int> v = vec_transform(a, sizeof(a) / sizeof(int));
        BucketSort(v);
        pass = pass && vec_equal(v, a, sizeof(a) / sizeof(int));
    }

    {
        int a[] = {9, 8, 7, 6, 5};
        std::vector<int> v = vec_transform(a, sizeof(a) / sizeof(int));
        BucketSort(v);
        int b[] = {5, 6, 7, 8, 9};
        pass = pass && vec_equal(v, b, sizeof(b) / sizeof(int));
    }

    return pass;
}
Example #3
0
int main() {
    int n = 0;
    for (int i = 0, n = 10; i < 5; i++, n = n*10) {
        if (n == 100000)
            n = 30000;
        int Array[n];
        int array[n];
        srand((unsigned)clock());
        for (int i = 0; i < n; i++) {
            Array[i] = rand()%n;
        }
        memcpy(array, Array, n*sizeof(int));
        printf("\n");
        int low = 0;
        int high = 0;
        high= sizeof(Array)/sizeof(int);
        printf("high = %d\n", high);
        high -= 1;
        clock_t start, end;
        clock_t start1, end1;
        start = clock();
        printf("QuickSort:  ");
        for (int j = 0; j < 5; j++) {
            memcpy(Array, array, n*sizeof(int));
            start1 = clock();
            QuickSort(Array, low, high);
            end1 = clock();
            printf("%f  ", (double)(end1-start1));
        }
        end = clock();
        if (n == 10) {
            for (int i = 0; i < 10; i++) {
                printf("%d ", Array[i]);
            }
            printf("\n");
        }
        printf("Average: %f\n", (double)((end-start)/5));
        srand((unsigned)time(NULL));
        start = clock();
        printf("BullbeSort:  ");
        for (int j = 0; j < 5; j++) {
            memcpy(Array, array, n*sizeof(int));
            start1 = clock();
            BullbeSort(Array, low, high);
            end1 = clock();
            printf("%f  ", (double)(end1-start1));
        }
        end = clock();
        if (n == 10) {
            for (int i = 0; i < 10; i++) {
                printf("%d ", Array[i]);
            }
            printf("\n");
        }
        printf("Average: %f\n", (double)((end-start)/5));
        srand((unsigned)time(NULL));
        start = clock();
        printf("ShellSort:  ");
        for (int j = 0; j < 5; j++) {
            memcpy(Array, array, n*sizeof(int));
            start1 = clock();
            ShellSort(Array, low, high);
            end1 = clock();
            printf("%f  ", (double)(end1-start1));
        }
        end = clock();
        if (n == 10) {
            for (int i = 0; i < 10; i++) {
                printf("%d ", Array[i]);
            }
            printf("\n");
        }
        printf("Average: %f\n", (double)((end-start)/5));
        srand((unsigned)time(NULL));
        start = clock();
        printf("MergeSort:  ");
        for (int j = 0; j < 5; j++) {
            memcpy(Array, array, n*sizeof(int));
            start1 = clock();
            MergeSort(Array, low, high);
            end1 = clock();
            printf("%f  ", (double)(end1-start1));
        }
        end = clock();
        if (n == 10) {
            for (int i = 0; i < 10; i++) {
                printf("%d ", Array[i]);
            }
            printf("\n");
        }
        printf("Average: %f\n", (double)((end-start)/5));
        srand((unsigned)time(NULL));
        start = clock();
        printf("InsertSort:  ");
        for (int j = 0; j < 5; j++) {
            memcpy(Array, array, n*sizeof(int));
            start1 = clock();
            InsertSort(Array, low, high);
            end1 = clock();
            printf("%f  ", (double)(end1-start1));
        }
        end = clock();
        if (n == 10) {
            for (int i = 0; i < 10; i++) {
                printf("%d ", Array[i]);
            }
            printf("\n");
        }
        printf("Average: %f\n", (double)((end-start)/5));
        srand((unsigned)time(NULL));
        start = clock();
        printf("BucketSort:  ");
        for (int j = 0; j < 5; j++) {
            memcpy(Array, array, n*sizeof(int));
            start1 = clock();
            BucketSort(Array, low, high);
            end1 = clock();
            printf("%f  ", (double)(end1-start1));
        }
        end = clock();
        if (n == 10) {
            for (int i = 0; i < 10; i++) {
                printf("%d ", Array[i]);
            }
            printf("\n");
        }
        printf("Average: %f\n", (double)((end-start)/5));
    }
}
Example #4
0
void sort(Record* Array, int n) {
    BucketSort(Array, n, 80);
}
Example #5
0
int main(void)
{
	datatype data[N];
	datatype temp[N];
	int i;

	srand((unsigned int)time(NULL));

	for(i = 0; i < N; i++) {
		data[i] = rand() % (NUM_LIMITS + 1);
	}
	Print(data, N);
	Copy(data, temp, N);

	printf("InsertionSort: \n");
	InsertionSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("BinaryInsertionSort:\n");
	BinaryInsertionSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("ShellSort:\n");
	ShellSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("SelectionSort:\n");
	SelectionSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("BubbleSort:\n");
	BubbleSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("QuickSort:\n");
	QuickSort(data, 0, N-1);
	Print(data, N);

	Copy(temp, data, N);
	printf("MergeSort:\n");
	MergeSort(data, 0, N-1);
	Print(data, N);

	Copy(temp, data, N);
	printf("HeapSort:\n");
	HeapSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("PigeonholeSort:\n");
	PigeonholeSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("BucketSort:\n");
	BucketSort(data, N, NUM_LIMITS);
	Print(data, N);

	Copy(temp, data, N);
	printf("CocktailSort:\n");
	CocktailSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("GnomeSort:\n");
	GnomeSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("OddEvenSort:\n");
	OddEvenSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("PatienceSort:\n");
	PatienceSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("BeadSort:\n");
	BeadSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("CombSort:\n");
	CombSort(data, N);
	Print(data, N);

	Copy(temp, data, N);
	printf("BogoSort(Do you believe fortune?):\n");
//	BogoSort(data, N);
//	Print(data, N);	

	return 0;
}