![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
handsup-
图像处理,机器学习,深度学习,C++。
展开
-
找出数组中出现一半以上次数的数字
网上有很多关于这题的解析,目前我看到最有的解法就是计数删除法,但代码很抽象,比较难理解,下面我谈谈自己理解,主要是为了加深印象。 public int MoreThanHalfNum_Solution(int [] array) { //先检验输入是否合法,此处默认输入不合法时也输出为0 if(array.length==0||array==null)原创 2017-04-08 17:40:39 · 394 阅读 · 0 评论 -
堆排序
堆排序是利用堆进行排序的算法。它的基本思想是: 第一步:将待排序列构建成一个最大堆,此时堆顶的根节点就是该序列中的最大值 第二步:将堆顶元素与堆数组的末尾元素交换,此时末尾元素就是最大值,然后将剩余的n-1个序列重新构建成一个堆 如此反复进行第二步,就得到了一个有序序列。下面是代码 public static void heapSort(int[] arr){ if(a原创 2017-04-30 14:47:05 · 215 阅读 · 0 评论