いくつかのアルゴリズムの実装コード
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];
}
}