您的位置:首页 > 编程语言

一些算法的实现代码

2015-09-23 00:00 501 查看
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];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: