快速排序求数组中出现次数超过[n/2]次元素

给定一个大小为n的数组,找出数组中出现次数超过【n/2】次的元素。

例如:

int[] arrays {1,2,3,4,1,1,,1}
出现次数超过【n/2】的元素为:1
解答:快速排序法:

public static void main(String[] args) {
       int[] arrays = {1,2,3,4,1,1,1,};
       //快速排序
       Arrays.sort(arrays);
       System.out.println(arrays[arrays.length/2]);
   }

思路:

题中给出要求,我们求出现超过n/2次的元素,若我们将数组进行升序或降序排序后,出现次数超过【n/2】次的,一个超过了数组的中位数;故我们只需求出数组中间那位数;

运行结果:

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×