- #include <stdio.h>
- #include <string.h>
- int quicksort(int array[],int start,int end){
- if(start<end){
- int low=start;
- int high=end;
- int key;
- key=array[low];
- while(low<high){
- while(low<high&&array[high]>=key){
- high--;
- }
- if(low<high)
- array[low]=array[high];
- while(low<high&&array[low]<key)
- low++;
- if(low<high)
- array[high]=array[low];
- array[low]=key;
- }
- quicksort(array,start,low-1);
- quicksort(array,low+1,end);
- }
- }
- int quicksortback(int array[],int start,int end){
- if(start<end){
- int low=start;
- int high=end;
- int key;
- key=array[low];
- while(low<high){
- while(low<high&&array[high]<=key){
- high--;
- }
- if(low<high)
- array[low]=array[high];
- while(low<high&&array[low]>key)
- low++;
- if(low<high)
- array[high]=array[low];
- array[low]=key;
- }
- quicksortback(array,start,low-1);
- quicksortback(array,low+1,end);
- }
- }
- int main(){
- int i,j=0,k=0;
- int odd[1000]={0};
- int even[1000]={0};
- int p=0;
- for(i=0;i<=1000;i++){
- printf("input %d th num:",i+1);
- scanf("%d",&p);
- if(p==-1)
- break;
- if(p%2!=0){
- odd[j]=p;
- j++;
- }
- if(p%2==0){
- even[k]=p;
- k++;
- }
- }
- quicksort(odd,0,j);
- for(i=1;i<=j;i++){
- printf("%d ",odd[i]);
- }
- quicksortback(even,0,k);
- for(i=0;i<=k-1;i++){
- printf("%d ",even[i]);
- }
- system("pause");
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/2601201511635.html
来源: http://www.codesnippet.cn/detail/2601201511635.html