int main() { int a[]={1,2,6,2,3,6,3,4,5,9,6,2,8,9,3,5,3,6,3,2}; count_sort(a,sizeof(a)/sizeof(int)); print_int_array(a,0,sizeof(a)/sizeof(int)-1); return 0; }
int main() { int list_to_sort[5] = {1000, 2, 3, 7, 50}; count_sort(list_to_sort, 5); printf("%d", list_to_sort[0]); printf("%d", list_to_sort[1]); printf("%d\n", list_to_sort[2]); }
/* * 基数排序 * * 参数说明: * a -- 数组 * n -- 数组长度 */ void radix_sort(int a[], int n) { int exp; // 指数。当对数组按各位进行排序时,exp=1;按十位进行排序时,exp=10;... int max = get_max(a, n); // 数组a中的最大值 // 从个位开始,对数组a按"指数"进行排序 for (exp = 1; max/exp > 0; exp *= 10) count_sort(a, n, exp); }
void radix_sort(int array[], int length) { int i; for(i=1; i<5; i++) { count_sort(array, length, i); } }
int main(int argc, char** argv) { int vector[VECTOR_SIZE]; init_vector(vector); count_sort(vector, VECTOR_SIZE); return 0; }
int main() { //int a[] = {5,4,9,8,7,6,3,2,1}; //int a[] = {5,4,9,5,4,5}; int a[] = {8,8,8,8,5,5,5,5,5,5}; int len = sizeof(a)/sizeof(int); print(a, len); count_sort(a, len); print(a, len); }
int main() { int src_array[] = {5,4,5,1,3,2,8,4,2,5,6,1,5,6,9,1,5,4,8}; //int src_array[] = {1,3,5,7,9,8,6,4,2,0}; int len = sizeof(src_array)/sizeof(src_array[0]); int *dst_array = calloc(len, sizeof(int)); disp_array(src_array, len); count_sort(src_array, dst_array, len, 20); disp_array(dst_array, len); free(dst_array); return 0; }
void radix_sort(std::vector<int>& nums) { int max_n = INT_MIN; for(int n : nums) { max_n = std::max(max_n, n); } for(int nd=1; max_n/nd>0; nd*=10) { count_sort(nums, nd); } }
int main() { int n=100000; int i; int list_to_sort[n]; for (i=0; i<n; i++){ list_to_sort[i] = rand(); } double start = omp_get_wtime(); count_sort(list_to_sort, n); double end = omp_get_wtime(); double diff = end-start; printf("elapsed process CPU time = %f seconds\n", diff); // printf("%d ", list_to_sort[0]); //printf("%d ", list_to_sort[1]); }
void radix_sort() { int i , l; int mx_len = 0; for(i = 0; i < num_words;i++) { int temp_len = strlen(words[i].str); if(temp_len > mx_len ) mx_len = temp_len; } update_dup_str(mx_len); // puts("inside radix_sort"); // print_words(); // printf("%mx_len = %d\n",mx_len); for(l = mx_len-1; l >= 0; l--) { count_sort(l); } }
void radix_sort() { int i,j; int l=0; for(i=0; i<ind; i++) { len[i] = strlen(all_words[i].word); if(l<len[i]) l = len[i]; } for(i=0;i<ind; i++) { for(j=len[i]; j<=l; j++) all_words[i].word[j] = '\0'; } for(i=l-1; i>=0; i--) count_sort(i); return; }
void testSort() { int x[] = {7,3,4,8,8,5,1,2,4}; int a[9]; printArray(x,9); memcpy(a,x,sizeof(int)*9); cout<<"merge sort:"<<endl; merge_sort(a, 0, 8); printArray(a, 9); memcpy(a,x,sizeof(int)*9); cout<<"fast sort:"<<endl; fast_sort(a, 0, 8); printArray(a, 9); memcpy(a,x,sizeof(int)*9); cout<<"bubble sort:"<<endl; bubble_sort(a, 9); printArray(a, 9); memcpy(a,x,sizeof(int)*9); cout<<"select sort:"<<endl; select_sort(a, 9); printArray(a, 9); memcpy(a,x,sizeof(int)*9); cout<<"insert sort:"<<endl; insert_sort(a, 9); printArray(a, 9); memcpy(a,x,sizeof(int)*9); cout<<"count sort:"<<endl; count_sort(a, 9); printArray(a, 9); }
int main() { int a[]={387,532,657,876,333,446,789,235,127,981}; int b[10]; int i,k; int d=3; for(i=1;i<=d;i++) { for(k=0;k<10;k++) { b[k]=a[k]/(int)(pow(10,i-1)); } for(k=0;k<10;k++) { b[k]=b[k]%10; } for(k=0;k<10;k++) printf("%d ",b[k]); printf("\n"); count_sort(a,b,10); } for(i=0;i<10;i++) printf("%d ",a[i]); }
/** @d the highest digit in sorted array @radix the radix of sorted array, in general it's ten */ void radix_sort(int arr[], int len, int radix, int d){ int i,j; int* sorted=malloc(sizeof(int)*len); int* tmp; for(i=1;i<=d;i++){ count_sort(arr, sorted, len, radix, i); tmp=arr; arr=sorted; sorted=tmp; } printf("\nafter radix sort:\n"); for(j=1;j<=len;j++){ printf("%d\t",arr[j]); } /** here because allocated memory is swapped, there is no clue which is the real memory free(sorted); */ }
int main(void){ int A[11] = {10,3,5,1,9,17,8,16,5,2,1}; int i; count_sort(A,20); printarray(A,11); }
void main(void) { int *dest; dest = (int *)malloc(sizeof(unsorted)); //bubble restore_element(dest, LEN); print_element(dest, LEN); bubble_sort(dest, LEN); printf("bubble sorted done!\n"); print_element(dest, LEN); //select restore_element(dest, LEN); print_element(dest, LEN); select_sort(dest, LEN); printf("select sorted done!\n"); print_element(dest, LEN); //insert restore_element(dest, LEN); print_element(dest, LEN); insert_sort(dest, LEN); printf("insert sorted done!\n"); print_element(dest, LEN); //merge restore_element(dest, LEN); print_element(dest, LEN); merge_sort(dest, LEN); printf("merge sorted done!\n"); print_element(dest, LEN); //quick restore_element(dest, LEN); print_element(dest, LEN); quick_sort(dest, LEN); printf("quick sorted done!\n"); print_element(dest, LEN); //rquick restore_element(dest, LEN); print_element(dest, LEN); rquick_sort(dest, LEN); printf("r-quick sorted done!\n"); print_element(dest, LEN); //count restore_element(dest, LEN); print_element(dest, LEN); count_sort(dest, LEN); printf("count sorted done!\n"); print_element(dest, LEN); //radix restore_element(dest, LEN); print_element(dest, LEN); radix_sort(dest, LEN); printf("radix sorted done!\n"); print_element(dest, LEN); free(dest); }
/*displays menu, gets input from user and selects sorting function according to user choice and handles program for invalid user inputs*/ int main() { int choice,size,i,r; int *input; do{ printf("\n1.Insertion Sort\n2.Counting Sort\n3.Merge Sort\n4.Randomized Quick Sort\n5.Exit"); printf("\nEnter your Choice"); scanf("%d",&choice); if(choice<=0 || choice>5){ printf("Invalid choice: "); exit(0); } if(choice==5) exit(0); printf("\nEnter size: "); scanf("%d",&size); if(size<1 || size >1000){ printf("\nNot in range\n"); exit(0); } input=malloc(size*sizeof(int)); //allocates input array dynamically if(choice==2 && size >20){ for(i=0;i<size;i++) input[i]=rand() %100+0; }else if(size <= 20){ for(i=0;i<size;i++) input[i]=rand() %16+0; flag=1; }else{ for(i=0;i<size;i++) input[i]=rand(); } printf("\nRandomly generated elements are\n"); for(i=0;i<size;i++) printf("%d\t",input[i]); if(flag==1){ //printf("\n\nGraphical representation of data\nInitial array\n"); //animation(input,0,size); } switch(choice){ //selects sorting algorithm according to user choice case 1:insertion_sort(input,size); break; case 2:count_sort(input,size); break; case 3:merge_sort(input,size); printf("\n\nsorted elements are:\n "); for(i=0;i<size;i++) printf("%d\t",input[i]); if(flag==1){ animation(input,0,size); flag=0; } free(input); break; case 4:quick_sort(input,0,size-1); printf("\n\nsorted elements are: \n"); for(i=0;i<size;i++) printf("%d\t",input[i]); if(flag==1){ animation(input,0,size); flag=0; } free(input); break; } } while(choice!=5); }