public int MoreThanHalfNum_Solution(int [] array) {
        //方法1 遍历 放到map中,计数,再遍历map  计数大于一半就是。 空间O(n)
        //方法 2 排序 或者 +二分法 时间o(n2)
        //这两种方法都不满足题目要求的时间 空间复杂度
        //选择插入排序 最好的情况是 O(N) 虽然用Map最好的情况空间复杂度可以忽略不计
        if(array == null){
            return 0;
        }
        for(int i = 1;i< array.length;i++){
            int value = array[i];
            int j = i - 1;
            for(;j>= 0;j--){
                if(value < array[j]){
                    array[j + 1] = array[j];
                }else{
                    break;
                }
            }
            array[j+1] = value;
        }
        
        int midNum = array[array.length / 2];
        int count = 0;
        for(int item : array){
            if(item == midNum){
                count ++;
            }
        }
        if(count > array.length / 2){
            return midNum;
        }
        return 0;
    }
}