HWOJ之纠结的优化

#include<stdio.h>
#include<string.h>

#define bool int 

//两个数据的交换
void swap(int *a,int *b) {
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}

//优化后的冒泡排序
void bubbleSort(int *array,int arraySize) {

    bool flag = 1;
    int i =0;
    int j =0;
    
    while(flag) {
        flag = 0;
        for(j=0;j<arraySize-1-i;j++) {
            if(array[j]<array[j+1]) {
                swap(&array[j],&array[j+1]);
                flag = 1;
            }
        }

        i++;
    }
}

void main() {

    int inputData[100] = {0};
    int outputData[100] = {0};


    int t;

    int p;

       //数据的传入
    int i = 0;
    int *pOutDataHead;
    int *pOutDataEnd;
    do{
        scanf("%d",&inputData[i]);
        i++;
    }while(getchar() != '
' );


    bubbleSort(inputData,i);

    pOutDataHead = &outputData[0];
    pOutDataEnd = &outputData[i-1];
    
    //选出奇数,选出偶数
    for(t = 0;t<i;t++) {
        if((inputData[t]%2)!=0) {
            *pOutDataHead = inputData[t];
             pOutDataHead++;
        } 
            
        else {
            *pOutDataEnd = inputData[t];
             pOutDataEnd--;
        }
        
    }


    //--------------------------
    for(p=0;p<i;p++) {
        printf("%d ",outputData[p]);
    }
    


}    
原文地址:https://www.cnblogs.com/hushunfeng/p/3929911.html