代码效果
递归代码内容
void OrderTurnNumber(int* arr, int overflow, int sz) { ?? ?if (overflow < sz - 1) ?? ?{ ?? ??? ?if (*arr > *(arr + 1)) ?? ??? ?{ ?? ??? ??? ?int tmp = *arr; ?? ??? ??? ?*arr = *(arr + 1); ?? ??? ??? ?*(arr + 1) = tmp; ?? ??? ??? ?if (overflow > 0) ?? ??? ??? ?{ ?? ??? ??? ??? ?OrderTurnNumber(arr - 1, overflow - 1,sz); ?? ??? ??? ?} ?? ??? ?} ?? ?OrderTurnNumber(arr + 1, overflow + 1,sz); ?? ?} } int main() { ?? ?int arr[] = { 5,7,7,6,5,4,7,6,1,1,2,3,54654,213213,21221,0,14,1,3,4,7,12,1,2,5,52,165,46,4,654,55,3564}; ?? ?int sz = sizeof(arr) / sizeof(arr[0]); ?? ?OrderTurnNumber(arr,0,sz); ?? ?for (int i = 0; i < sz; i++) ?? ??? ?printf("%d ", arr[i]); ?? ?return 0; }
我也去问了别人,我建议是用正常的算法去做这个东西....?