public int search(int[] nums,int key){
if(nums==null||nums.ength==0)return -1;
int start = 0;
int edd = nums.length-1;
int mid ;
while(start<end){
mid = (start+end)/2;
if(nums[mid]==key){
return mid;
}else if(nums[mid]>key){
end = mid-1;
}else{
start = mid+1;
}
}
return -1;
}
递归二分查找
public int search(int[] nums,int key,int start,int end){
int mid = (start+end)/2;
if(nums==null||nums.length==0||key>nums[end]||key<nums[start])
return -1;
}else if(nums[mid] == key) {
return mid;
}else if(nums[mid]>key){
search(nums,key,start,mid-1)
}else{
search(nums,key,mid+1,end)}
冒泡排序
public void paixu(int nums[]){
int temp = 0;
for(int i = 0;i<nums.length;i++){
for(int j = 0;j<nums.length-i-1){
if(nums[j]>nums[j+1]){
temp = nums[j]
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
}
快速排序
public void kuaipai(int nums[],start,end){
if(nums==nul||start>=end){
return;
}
int first = start;
int last = end;
int temp = nums[first];
while(start<end){
while(start<end&&temp<=nums[last]){
--last;
}
nums[first] = nums[last];
while(satrt<end&&temp>=nums[first]){
++first;
}
nums[last] = nums[first]
}
nums[first] = temp;
kuaipai(nums,first+1,end);
kuaipai()nums,start,first-1);
}
求数组中最小组合
public int minNum(int nums[]){
if(nums==null||nums.length==0) return 0;
int min = Interger.MAX_VALUE;
int sum = 0;
for(int num : nums){
if(sum>0){
sum = nums[i];
}else{
sum+= nums[i];
}
if(sum<min){
min = sunm;
}
return min;
}
}
求数组的最大组合
public int MaxNum(int nums[]){
if(nums==null||nums.length==0) return 0;
int max= -Interger.MAX_VALUE;
int sum = 0;
for(int num : nums){
if(sum<0){
sum = nums[i];
}else{
sum+= nums[i];
}
if(sum>max){
max= sunm;
}
return max;
}
}
斐波那契数
private static int feibonaqi(int n) {
if (n == 0 || n == 1) {
return 1;
}
return feibonaqi(n - 1) + feibonaqi(n - 2);
}
链表实现Lru算法
public static void main(String[] args){
Scanner in = new Sanner(System.in);
LinkedList ll = new LinkedList<Interger>();
while(in.hasnext()){
int a = in.next();
if(ll.cantains(a)){
for(Object o : ll){
if((int) o == a){
ll.remove(o);
}
ll.addFirst(a);
}
}else{
ll.addFirst(a);
if(ll.size()>10){
ll.removeLast();
}
}
}
}