欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

给定n个整数的数组A以及一个数x,设计一个分治算法,求出x在数组中出现的次数,并分析时间复杂度

程序员文章站 2022-03-13 12:50:36
...
public class fenzhiForNum {
    public static void main(String[] args) {
        int[] arr = {1,6,7,8,4,3,1,6,8,1,4};
        System.out.println("1出现了"+count(arr, 0, 10, 1)+"次");
    }

    private static int count(int[] arr,int a,int b,int x){
        int c;
        if(a==b){
            if(arr[a]==x){
                return 1;
            }else{
                return 0;
            }
        }else{
            c=(a+b)/2;
            return (count(arr,a,c,1)+count(arr,c+1,b,1));
        }
    }

}

时间复杂度:
T(n) = O(1), n=1;
T(n) = 2T(n/2) + O(1), n>=2;

相关标签: 算法设计