配列要素の分類


タイトル:
奇数が偶数より前になるように配列順序を調整
整数配列を入力し、すべての奇数が配列の前半に位置し、すべての偶数が配列の後半に位置するように、配列内の数値の順序を調整する関数を実現します.
プログラム1.0:
2つのポインタを使用して、1つのポインタが先頭を指し、1つのポインタが先頭を指し、1つのポインタが奇数に遭遇すると後に移動し、偶数に遭遇すると尾ポインタが指す要素と交換し、頭ポインタ交換が完了すると後に移動し、尾ポインタ交換が完了すると前に移動し、2つのポインタが同じアドレス交換が終了する
void ReorderOddEven(int *pData, size_t length)
{
	assert(pData);
	assert(length);
	int*pHead = pData;
	int*pTail = pData + length - 1;
	while (pHead != pTail)
	{
		if ((*pHead & 0x1) == 0)//   
		{
			swap(*pHead, *pTail);
			pTail--;
		}
		pHead++;
	}
}

プログラム1.1
void ReorderOddEven(int *pData, size_t length)
{
	assert(pData);
	assert(length);

	int *pHead = pData;
	int*pTail = pData + length - 1;

	while (pHead  
  

2.0

: while

, ?( , )

void ReorderOddEven(int *pData, size_t length, bool(*func)(int))
{
	assert(pData);
	assert(length);

	Reorder(pData, length, isEven);
}
void Reorder(int *pData, size_t length, bool(*func)(int))
{
	int *pHead = pData;
	int*pTail = pData + length - 1;

	while (pHead  
  

     , isEven ,