学完Java基础篇,自己写个二分查找算法

来源:互联网 发布:ghost squad 知乎 编辑:程序博客网 时间:2024/06/05 02:02
 

 

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

           看完了毕老师的Java基础篇,照着视频上讲的自己也尝试的写了几个小程序,数组的遍历,排序,二分查找,进制转换,获取最大值,发现自己写代码也是很享受的过程,分析算法,修改代码,感觉非常美妙,写完每个函数之后看到运行结果,心里都美美的,我真的开始成为Java的一员了吗,;把几个小程序都写好后,我就开始在main函数里面调用,运行了好几次之后,我就有了自己的想法,想改改代码,或许可以更高效,比如冒泡排序的问题,为了能记录查找次数,在函数体内定义一个变量count;因为毕老师讲的程序只用a[mid]与key比较,如果要查找的值刚好在min或max,效率就会有点低,所以我在每次循环之前都先与两边比较,定义变量temp=-1;key与谁相等就把谁的角标付给temp,找不到就不改变temp值,循环结束后打印temp及循环次数;

代码如下:

                             public static void binsort(int[] arr,int key){
                                    int min = 0,max = arr.length-1,mid,count = 0,temp = -1;

                                    while(min<max){
                                           ++count;
                                           mid = (min+max)/2;
                                  if(arr[min]==key){temp = min;break;}
                                  if(arr[max]==key){temp = max;break;}
                                  if(arr[mid]==key){temp = mid;break;}
                                    else if(arr[mid]>key){max = mid;}
                                    else if(arr[mid]<key){min = mid+1;}
                                 }
                            System.out.println(count+":"+temp);
                            }
     虽然对于Java高手来说以上这些不过是Java最基本的知识,但我觉得最起码我已进入Java的大门;Java与之前学的C有很大不同,  所有的程序都要写在类里面,面向对象使复杂的问题简单化,代码也更容易阅读;但这只是一个小小的开始,为了梦想,我要坚守在这个战场;

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima


 

原创粉丝点击