设计原则———线性(顺序)——二分(折半)查找!

设计原则:

1.开闭原则:对扩展开放,对修改关闭,主要extends

2.里氏代换原则:任何父类课出现的地方,子类都可出现,多用继承和多态理念

3.依赖倒转原则:尽量多用抽象类或接口,不是具体实现类,

4.接口隔离原则:尽量依赖小借口,而不是大接口

5.迪米特法则(最少知道原则):一个实体应当少与其他类发生关联

6.合成复用原则:就是例如 A类中的a需要在B类中可用,申明a在B,并且用构造传入它的引用;

线性和折半查找:

package day24PaiXuSuanFa;

//线性查找(顺序)
//从指定数组中查找参数指定的元素并返回下标;
public class ChaZaoSuanFa {
   //1.顺序查找(线性查找):
    public static int find(int[]arr, int num){
        for(int i=0;i<arr.length;i++){
           if(num==arr[i]){
               return i;
           }
        }
        return -1; //查找失败
    }

    // 2. 二分查找法:
    public static int findtwo(int[]arr,int left,int right,int tt) {
        if (left<=right) {
            int z = (left + right)/2;
            if (arr[z] == tt) {
               return z;
            }
            if (arr[z] > tt) {
                return findtwo(arr, left, z - 1, tt);
            }else {
                return findtwo(arr, z + 1, right, tt);
        }
        }
                return -1;
    }

    public static void main(String[] args) {
        int []brr ={10,23,44,22,341,12,3,2,0};
        int []crr = {11,22,33,44,55,66,68,77};
        int a=2;
        int b=68;

        //2.二分代码:
        int two = findtwo(crr,0,7,b);
        System.out.println("二分查找到的位置是:"+two);

       // 1.小马编写于main上
        int t= ChaZaoSuanFa.find(brr,a);
        System.out.println("线性查找的位置:"+t);
         /*  1. 自己编于main中
        for(int i=0;i<brr.length;i++){
            if(a==brr[i]){
                System.out.println("写在main方法里的获取位置:"+i);
                break;
            }
        }*/
    }
}

 上一篇
冒泡排序! 冒泡排序!
package day24PaiXuSuanFa; //冒泡排序: public class PaiXu { public static void show(int []arr){ //注意此处的i从1开始
2019-10-29
下一篇 
线程同步机制加锁 线程同步机制加锁
线程同步机制: 多个线程访问同一资源时,造成数据不一致,此时需对多个线程间进行协调。(例如:银行取钱时线程同时过去,会导致数据判断不正确,此时需将并行的的操作改为串行) 主要上锁(synchronized)方式(3种): 1.在要执行的r
2019-10-28
  目录