データ構造——アルゴリズムの(026)(奇数が偶数より前になるように配列順序を調整する)

984 ワード

【申明:本文は自己まとめと相互交流に限られていますので、ご指摘をお愿いします.メールアドレス:[email protected]
タイトル:
整数配列を入力し、奇数が偶数の前半に位置し、偶数が配列の後半に位置するように関数調整配列の要素順序を実現します.時間複雑度O(n)テーマ分析:
類似タイトル:文字列を入力し、大文字が前半、小文字が後半になるように関数を実現します.
(1)調整が要求されていない場合、位置を変更してはならない
(2)時間複雑度知能遍歴
アルゴリズムの実装:
#include <stdio.h>

void sort_array(int *array, int size)
{
	int *start = array;
	int *end = &array[size-1];
	int temp = 0;

	while(start < end)
	{
		if(*start%2 != 0)
		{
			start++;
			continue;
		}
		
		if(*end%2 == 0)
		{
			end--;
			continue;
		}

		temp = *start;
		*start = *end;
		*end = temp;
	}
}

void print(int *array, int size)
{
	int i=0;
	for(;i <size; i++)
		printf(" %d", array[i]);
	printf("
"); } int main() { int array[] = {38, 1,2,4,6,7, 9,11, 12,38}; //int in[]={9, 4, 3, 2,100, 99, 88, 77, 66, 6, 5, 4, 8, 3, 2}; int size = sizeof(array)/sizeof(int); sort_array(array, size); print(array, size); return 0; }