解决实际问题 第一步: 理解 先讲出来, 画图 第二步:计划 计划很重要,最好写出来; 第三步:分解 分治算法(把复杂的大问题分解成很多小问题) 任务->子任务->结果归并 第四步: 卡壳 重复看问题,站到旁观者看问题,请教同事; 最后:练习 ...
分类:
其他好文 时间:
2020-05-12 13:47:54
阅读次数:
49
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 来源:力扣(LeetCode) 需要从尾开始遍历,否则在 nums1 上归并得到的值会覆盖还未进行归并比较的值。 class Solution { public: voi ...
分类:
编程语言 时间:
2020-05-12 11:28:32
阅读次数:
77
1 void quick_sort(int q[], int l, int r) 2 { 3 if (l >= r) return; 4 5 int i = l - 1, j = r + 1, x = q[l + r >> 1]; 6 while (i < j) 7 { 8 do i ++ ; wh ...
分类:
编程语言 时间:
2020-05-12 00:03:55
阅读次数:
84
一、什么是归并排序归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。二、图解先将无序数组分割,经过排序,将两个有序数组再拼接。三、原理归并排序的原理就是合并两个有序数组。合
分类:
编程语言 时间:
2020-05-11 23:19:11
阅读次数:
67
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 分而治之 可以看到 ...
分类:
编程语言 时间:
2020-05-10 17:22:20
阅读次数:
59
官方解法带视频讲解,推荐先看视频再来看本文的讲解 https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof/solution/shu-zu-zhong-de-ni-xu-dui-by-leetcode-solution/ 采用归并 ...
分类:
编程语言 时间:
2020-05-10 01:08:20
阅读次数:
82
每日一题 实现?int sqrt(int x)?函数。 计算并返回?x?的平方根,其中?x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 思路 牛顿迭代 x=(x+a/x) 二分的初始区间取0 x/2,因为输入的x是整数。 牛顿迭代 二分法 class Solution ...
分类:
编程语言 时间:
2020-05-09 23:17:31
阅读次数:
74
蛇形矩阵 题目链接: https://www.acwing.com/activity/content/problem/content/1898/1/ 思路 设计一个偏移量,4个方向,走不通了就改变方向 实现 链表的归并排序 迭代 递归 寻找矩阵的极小值 题目链接:https://www.acwing ...
分类:
编程语言 时间:
2020-05-07 15:13:20
阅读次数:
82
参考算法导论 #include <iostream> using namespace std; void merge(int a[],int p,int q,int r) { if(p==r) { return; } int n1=q-p+1; int n2=r-q; int L[n1+1]={0} ...
分类:
编程语言 时间:
2020-05-06 14:22:54
阅读次数:
61