void Tools::Move_Ends(Cube list[], int64_t* left_end, int64_t* right_start, const char right, const char left, const int bit) { int64_t start = (*left_end) + 1; int64_t end = (*right_start) - 1; int64_t i; char* current; Cube* current_cube; for (i = end; i > *left_end; --i) { current = reinterpret_cast<char*> (&list[i]); if (current[bit] != left) { *right_start = i + 1; break; } } current_cube = &list[(*left_end) + 1]; for (i = start; i < *right_start; ) { current = reinterpret_cast<char*> (current_cube); if (current[bit] == right) { (*left_end)++; Swap(current_cube, &list[*left_end]); current_cube++; ++i; } else if (current[bit] == left) { (*right_start)--; Swap(current_cube, &list[*right_start]); } else { current_cube++; ++i; } } if (start < *left_end) Radix_Sort(list, start, *left_end, bit + 1); if (*right_start < end) Radix_Sort(list, *right_start, end, bit + 1); }
void main() { lnode h; int d; clrscr(); h=my_input(&d); puts("The sequence you input is:"); my_output(h); h=Radix_Sort(h,d); puts("\nThe sequence after radix_sort is:"); my_output(h); my_free(h); puts("\n Press any key to quit..."); getch(); }
void main(void) { int a[ARR_NUM] = {137, 219, 532, 655, 422, 164, 98, 422, 334}, b[ARR_NUM], i; printf("排序前( before sorting ):\n"); for (i = 0; i < ARR_NUM; i++) { printf(" %d", a[i]); } Radix_Sort(a, b, ARR_NUM, 10, 3); printf("\n排序後 ( after sorting ):\n"); for (i = 0; i < ARR_NUM; i++) { printf(" %d", a[i]); } printf("\n"); }
int main(int argc, char *argv[]) { int a[ARR_NUM]={137,219,532,655,422,164,98,422,334},b[ARR_NUM],i; printf("Radix Sort 排序前( before sorting ):\n"); for(i=0;i < ARR_NUM;i++) printf(" %d",a[i]); Radix_Sort(a,b,ARR_NUM,10,3); printf("\nRadix Sort 排序後 ( after sorting ):\n"); for(i=0;i < ARR_NUM;i++) printf(" %d",a[i]); printf("\n"); system("PAUSE"); return EXIT_SUCCESS; }
void main() { int no[M]={42,23,74,11,65,57,94,36,99,87,70,81,61},i,cnt=0; clrscr(); /* for(i=0;i<SIZE;i++) { printf("Enter no[%d] : ",i+1); scanf("%d",&no[i]); }*/ cnt=FindMaxLen(no); printf("\nmaxlen:%d",cnt); getch(); for(i=0;i<cnt;i++) { Radix_Sort(no,i+1); disp(arr); } //getch(); }