调整数组使奇数全部都位于偶数前面。

来源:互联网 发布:通过淘宝助理的模块 编辑:程序博客网 时间:2024/05/14 17:29
#include<stdio.h>#include<assert.h>void ReorderOddEven(int arry[], int size){assert(arry);if (arry == NULL || size <= 0){return;}int begin = 0;int temp = 0;int end = size - 1;while (begin<end){while (begin<end && arry[begin] % 2 != 0) //向后移动begin,直到它指向偶数{begin++;}while (begin<end && arry[end] % 2 == 0)   // 向前移动pEnd,直到它指向奇数{end--;}if (begin<end){temp = arry[begin];     // 交换偶数和奇数arry[begin] = arry[end];arry[end] = temp;}}for (int j = 0; j<size; j++){printf("%d", arry[j]);}}int main(){int arr[] = { 1,2,3,4,5,6,7,8 };int size = sizeof(arr) / sizeof(arr[0]);ReorderOddEven(arr, size);system("pause");return 0;}


0 0
原创粉丝点击