int main(void) { int array[NUM]; clock_t start, end; double st,bt; //s_sort time,b_sort time initialize(array); disp_array(array); start = clock(); s_sort(array); end = clock(); disp_array(array); st = (double)(end-start)/CLOCKS_PER_SEC; start = clock(); initialize(array); b_sort(array); end = clock(); disp_array(array); bt = (double)(end-start)/CLOCKS_PER_SEC; printf("simple compare:%d\nchange:%d\n",s_co_count,s_ch_count); printf("TIME:%lf\n",st); printf("bubble compare:%d\nchange:%d\n",b_co_count,b_ch_count); printf("TIME:%lf\n",bt); return 0; }
int main(void) { int myArray1[10] = {5, 4, 3, 6, 8, 7, 2, 9, 1, 10}; int myArray2[10] = {5, 4, 3, 6, 8, 7, 2, 9, 1, 10}; print(myArray1, 10); s_sort(myArray1, 10); print(myArray1, 10); printf("\n\n"); print(myArray2, 10); i_sort(myArray2, 10); print(myArray2, 10); return EXIT_SUCCESS; }
void shellSort(T a[], int size) { //Five gaps of size dependent on data size int steps[5]; for(int i = 0; i < 5; i++) { if(i == 0) steps[i] = 1; else steps[i] = i * (size / 5); } s_sort(a, size, steps, 5); //Twenty gaps of size dependent on data size /* int steps[25]; for(int i = 0; i < 25; i++) { if(i ==0) steps[i] = 1; else steps[i] = i * (size / 25); } s_sort(a, size, steps, 25); */ //Five gaps spaced by 3 /* int steps[5] = {1, 4, 7, 10, 13}; s_sort(a, size, steps, 5); */ //Gaps generated as Fibonnaci numbers /* vector<int> list; list.push_back(1); list.push_back(2); int num; do { num = list[list.size() - 1] + list[list.size() - 2]; list.push_back(num); } while(num < size); int stepSize = list.size(); int* steps = new int[stepSize]; for(int i = 0; i < stepSize; i++) { steps[i] = list[i]; } s_sort(a, size, steps, stepSize); delete[] steps; */ //Gaps created by alternative algorithm /* vector<int> list; int i = 1; int num; do { num = (pow(2, i) - 1); list.push_back(num); i++; } while(num < size); int stepSize = list.size(); int* steps = new int[stepSize]; for(int i = 0; i < stepSize; i++) steps[i] = list[i]; s_sort(a, size, steps, stepSize); delete[] steps; */ }