【C語言】 冒泡排序子例

調整數組使奇數所有都位於偶數前面
實現如下功能:
輸入一個整數數組,實現一個函數,來調整該數組中數字的順序使得數組中全部的奇數位於數組的前半部分,全部偶數位於數組的後半部分

代碼實現:

#include<stdio.h>

void swap(int *a,int *b)
{
	int t = *a;
	*a = *b;
	*b = t;
}

int adjust_num(int arr[],int n)
{
	int i,j;
	for(i = 0;i < n-1;i++) //外層循環控制次數,冒泡排序有n個元素,循環進行(n-1)次
	{
		for(j = 0;j < n-i-1;j++) //內層循環控制下標,每進行一次循環,找出該元素對應的位置且再也不變更
		{
			if(arr[j] % 2 == 0 && arr[j+1] %2 != 0)
			{
				swap(&arr[j],&arr[j+1]);
			}
		}
	}
	return arr;
}

int main()
{
	int arr[]={1,2,3,4,5,6,7,8,9,10};
	int n = sizeof(arr)/sizeof(arr[0]);
	int i = 0;
	adjust_num(arr,n);
	for(i = 0;i < n;i++)
	printf("%d ",arr[i]);
	printf("\n");
}
相關文章
相關標籤/搜索