一些算法的实现代码
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]; } }
相关文章推荐
- Java基础之自动装箱和自动拆箱源码分析
- Java基础之内存管理原理及内存区域详解
- Java基础之Java并发编程:volatile关键字解析
- SpringMVC之接收请求参数和页面传参
- SpringMVC详细示例实战教程
- Spring面试问答
- PHP编程效率的20个要点
- eclipse 运行nutch源码报错
- 新版本eclipse导入旧版本插件
- C++头文件有 h和没有h的区别
- AKKA文档(java版)—角色
- Python多线程编程之多线程加锁
- java编写代码需要注意的小细节
- wrong number of arguments,java方法反射时数组参数的坑
- JAVA生成验证吗jsp接收配合strut2实现
- Python 使用 OS 模块实现目录遍历
- Python基础语法_运算符详解
- 彻底理解PHP的SESSION机制
- JAVA继承和组合
- javaweb中的cookie的应用