#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
enum colors{red,white,blue};
void create(enum colors a[],int n);
void sort(enum colors a[],int n);
void putout(enum colors a[],int n);
int main(){
enum colors a[N];
create(a,N);
printf("初始队列为:\n");
putout(a,N);
sort(a,N);
printf("目前对列为:\n");
putout(a,N);
return 0;
}
void create(enum colors a[],int n){
int i,temp;
srand(time(NULL));
for(i=0;i<n;i++){
temp=rand()%3;
a[i]=(enum colors)temp;
}
return;
}
void sort(enum colors a[],int n){
int i=0,k=n-1,j=0;
enum colors change;
while(j<=k){
switch(a[j]){
case red:change=a[i];a[i]=a[j];a[j]=change;i++;j++;break;
case white:j++;break;
case blue:change=a[k];a[k]=a[j];a[j]=change;k--;break;
}
}
return;
}
void putout(enum colors a[],int n){
int i;
for(i=0;i<n;i++){
switch(a[i]){
case red:printf("red ");break;
case white:printf("white ");break;
case blue:printf("blue ");break;
}
}
printf("\n");
return;
}