![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
文章平均质量分 65
zhangchengcheng1997
这个作者很懒,什么都没留下…
展开
-
两数之和
1、问题描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。 样例 给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2]. 2、实现思路 先判断给原创 2017-05-20 23:14:36 · 164 阅读 · 0 评论 -
两数组的交 II
1、问题描述 计算两个数组的交 样例 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. 2、实现思路 将两个数组排序,nums1的每个元素依次和nums2中元素比较是否相等,因为排过序,若nums1中的元素比nums2中某位置的值小,一定比nums2此元素之后所有的小,不需要比较,比较过了的num原创 2017-05-18 18:01:02 · 131 阅读 · 0 评论 -
两数组的交
1、问题描述 返回两个数组的交 样例 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2]. 2、实现思路 将两个数组排序,nums1的每个元素依次和nums2中元素比较是否相等,如果nums1中有重复的只需要比较一个,因为排过序,若nums1中的元素比nums2中某位置的值小,一定比nums2此元素之后所有原创 2017-05-18 17:51:45 · 166 阅读 · 0 评论 -
整数排序 II
1、问题描述 给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。 样例 给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。 2、实现思路 归并排序,快速排序,堆排序是O(nlogn)的算法,vector中的sort()用的就是快速排序。 3、代码 class原创 2017-06-08 16:46:46 · 155 阅读 · 0 评论 -
链表插入排序
1、问题描述 用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null 2、实现思路 将链表升序排列,p、q为一前一后结点比较大小,若pnext,重复上述步骤。 3、代码 /** * Definition of ListNode * class ListNode { * p原创 2017-06-08 17:24:39 · 182 阅读 · 0 评论 -
合并区间
1、问题描述 给出若干闭合区间,合并所有重叠的部分。 样例 给出的区间列表 => 合并后的区间列表: 样例 给出的区间列表 => 合并后的区间列表: [ [ [1, 3], [1, 6], [2, 6], => [8, 10], [8, 10],原创 2017-06-08 17:44:38 · 246 阅读 · 0 评论 -
中位数
1、问题描述 给定一个未排序的整数数组,找到其中位数。 中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。 给出数组[4, 5, 1, 2, 3], 返回 3 给出数组[7, 9, 4, 5],返回 5 2、实现思路 先用sort()函数排序,数组元素个数为偶数返回nums[(n-1)/2],数组元素个数为奇数返回nums[n/2]原创 2017-06-08 18:01:24 · 256 阅读 · 0 评论 -
排序
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。 直接插入排序:O(n*n) 选择排序:O(n*n) 快速排序:平均时间复杂度log2(n)*n,所有内部排序原创 2017-06-15 17:09:39 · 213 阅读 · 0 评论