いくつかのアルゴリズムの実装コード

2130 ワード

1.       Fibonacci
class fab{
        public static void main(String args[]){
// fab(47) int   
                for(int i=0;i<47;i++)
                        System.out.print(fab(i)+" ");
                System.out.println();

        }
        public static int fab(int n){
                if(n==0) return 0;
                if(n==1) return 1;
                int fa=0;
                int fb=1;
                // for(int i=0;i<n/2;i++)
                for(int i=1;i<=n/2;i++){
                        fa+=fb;
                        fb+=fa;
                }
                return n%2==0?fa:fb;
        }
}
2.        
public static int[] combine(int arra[],int arrb[]){
        int lengtha=arra.length,lengthb=arrb.length;
        int result[]=new int[lengtha+lengthb];
        int i=0,j=0,k=0;
        while(i<lengtha){
            while(j<lengthb){
                if(arra[i]<arrb[j]){
                    result[k++]=arra[i++];
                }else{
                    result[k++]=arrb[j++];
                }
                break;
            }
            if(j==lengthb)
                break;
        }
        while(i<lengtha)
                result[k++]=arra[i++];

        while(j<lengthb)
                result[k++]=arrb[j++];

        return result;
    }
3.          
    public static void reverse(int arr[]){
        int i=0,j=arr.length-1;
        while(i<j){
            if(arr[i] != arr[j]){
               arr[i]=arr[i]^arr[j];
               arr[j]=arr[i]^arr[j];
               arr[i]=arr[i]^arr[j];
            }
            i++;j--;
        }
    }
4.    
    public static void sort(int arr[]){
       int length=arr.length;
       int k;
       for(int i=0;i<length-1;i++){
          k=i;
          for(int j=i+1;j<length;j++){
            if(arr[k]>arr[j])
               k=j;
          }
          swap(arr,i,k);
       } 
    }
    public static void swap(int arr[],int i,int j){
        if(arr[i] != arr[j]){
            arr[i]=arr[i]^arr[j];
            arr[j]=arr[i]^arr[j];
            arr[i]=arr[i]^arr[j];
        }
    }