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(); }
// ----------------------------------------------------------------------------- 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; }
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)); } }
void sort(Record* Array, int n) { BucketSort(Array, n, 80); }
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; }