zoukankan      html  css  js  c++  java
  • 调整数组顺序使奇数位于偶数前面

    void ReorderOddEven(int data[], int n)
    {
    	if(data == NULL || n < 2) return;
    	
    	int left  = 0;
    	int right = n-1;
    	while(left < right)
    	{
    		while(left < right && data[left]&0x01 ==  1) ++left;
    		
    		while(left < right && data[right]^0x01 == 0) -- right;
    		
    		if(left < right){
    			int temp = data[left];
    			data[left] = data[right];
    			data[right] = temp;
    			++left;
    			--right;
    		}
    	}
    	
    }
    
    void Reorder(int data[], int n, bool (*test)(int ))
    {
    	if( data == NULL || n < 2) return ;
    	
    	int left = 0;
    	int right = n-1;
    	
    	while(left < right){
    		
    		while(left < right && test(data[left]) == true) ++left;
    		
    		while(left < right && test(data[right]) == false) --right;
    		
    		if(left < right){
    			int temp = data[left];
    			data[left] = data[right];
    			data[right] = temp;
    			++left;
    			--right;
    		}
    	}
    }
    

      

  • 相关阅读:
    Poj3126
    Poj1426
    2806 红与黑
    3100 蜗牛
    1225 八数码难题
    2549 自然数和分解
    2547 东方辉针城
    2928 你缺什么
    1629 01迷宫
    1029 遍历问题
  • 原文地址:https://www.cnblogs.com/graph/p/3320970.html
Copyright © 2011-2022 走看看