【题目】
思想:
利用快速排序的思想来置换元素
设计将所有奇数移到偶数之前的算法
【代码】
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX 10
typedef int elemtype;
void change(int num[]);
void random(int num[]);
void prin(int num[]);
void random(int num[]) {
int i;
for (i = 0; i < MAX; i++)
num[i] = rand() % 100 + 1;
}
void prin(int num[]) {
int i;
for (i = 0; i < MAX; i++)
printf("%4d", num[i]);
}
void change(int num[]) {
int i = 0, j = MAX - 1, t = num[0];
while (i < j) { //交替扫描
while (num[j] % 2 == 0) //从后开始,找到奇数的下标
j--;
num[i] = num[j]; //然后放到刚刚给他腾空的元素地方
while (num[i] % 2 != 0) // //从后开始,找到偶数的下标
i++;
num[j] = num[i];
}
num[i] = t;
}
int main() {
int num[MAX];
random(num);
change(num);
prin(num);
return 1;
}