
OJ算法-排序
文章平均质量分 72
BraveLii
这个作者很懒,什么都没留下…
展开
-
排序算法总结
记录插入排序、选择排序、快速排序、归并排序算法的实现和它们的时间复杂度。1、常用排序算法分类2、算法复杂度3、排序算法实现 3.1 简单插入排序 3.2 希尔排序 3.3 冒泡排序 3.4 快速排序 3.5 简单选择排序 3.6 堆排序 3.7 归并排序1、常用排序算法分类2、算法复杂度上图来自:http://blog.youkuaiyun.com/hguisu/ar...原创 2018-03-27 13:15:08 · 209 阅读 · 0 评论 -
数组的前k个最大值
方法一:使用最小堆。 1、用前k个元素建立一个最小堆;2、遍历无序区域的元素,和堆顶元素对比,如果小于堆顶值,肯定不可能是前k个最大值;如果大于堆顶值,那么取代堆顶元素,做一次堆调整。//最小堆的调整 void heap_adjust_for_maxK(int arr[], int s, int end) { //对堆进行一次调整 //方法:(以大顶堆为例)比较父节点和两个子节点的大小:如果父...原创 2018-03-28 18:08:49 · 1698 阅读 · 0 评论 -
剑指offer-21、调整数组顺序使得奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路:这是一个排序问题,并且需要稳定排序,采用冒泡算法,交换的条件是相邻两元素,偶数在前奇数在后如果题目不要求保证相对位置,那么可以从前后两端遍历的方法class Solution { public: void ...原创 2018-05-02 06:40:19 · 184 阅读 · 0 评论