寻找数组中的最大递增序列

public   class  SearchOrder {
    
    
/**
     * 
@param  args
     
*/
    
public   static   void  main(String[] args) {
        
int [] value  =  { 9 , 1 , 3 , 4 , 5 , 10 , 7 , 4 , 11 , 6 };
        
int [] check  =   new   int [ 10 ];
        
int [] saveArray  =   new   int [ 10 ];
        
int  index  =   0 ;
        
int  innerIndex  =   0 ;
        
int  ascLength  =   0 ;
        
int  j  =   0 , n  =   0 ;
        
int  bao  =   0 ;
        
for  ( int  i  =   0 ; i  <  value.length; i ++ ) {
            n 
=  value[i];
            innerIndex 
=  i;
            
while (innerIndex  <  value.length  &&  innerIndex  !=   - 1 ) {
                index 
=  innerIndex;
                
while ((index  =  searchNextBigNum(n, value, index))  !=  value.length){
                    check 
=  putValueToArray(check, index);
                    n 
=  value[index];
                    j
++ ;
                }
                n 
=  value[i];
                
if  (check[ 0 !=   0 )
                    innerIndex 
=  check[ 0 ];
                
else  innerIndex  =   - 1 ;
                
if (ascLength  <  j) {
                    bao 
=  i;
                    ascLength 
=  j;
                    saveArray 
=  check;    
                }
                j 
=   0 ;
                check 
=   new   int [ 10 ];
            }
        }
        System.out.print( bao 
+   "    " );
        
for ( int  k  =   0 ; k  <  saveArray.length; k ++
            System.out.print(saveArray[k] 
+   "    " );
    }
    
/**
     * 
     * 
@param  data
     * 
@param  value
     * 
@param  index
     * 
@return
     
*/
    
private   static   int  searchNextBigNum( int  data,  int [] value,  int  index) {
        
        
if (index  >=  value.length  -   1 )
            
return  value.length;
        
        
for (index  =  index  +   1 ; index  <  value.length; index ++ ) {
            
if (data  <  value[index])
                
return  index;
        }
        
return  value.length;
    }
    
/**
     * 
     * 
@param  value
     * 
@param  data
     * 
@return
     
*/
    
private   static   int [] putValueToArray( int [] value,  int  data) {
        
for ( int  i  =   0 ; i  <  value.length; i ++
            
if  (value[i]  ==   0 ) {
                value[i] 
=  data;
                
return  value;
            }
        
return  value;
    }
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值