归并算法: 先来个图解^v^: 归并排序的思想就是:如果一个数组无序,那么 ,将这个数组一分为二,如果一分为二的数组还是无序的,那么就继续往下分数组,直到分出来的数组有序(一般情况下,被分的数组只剩两个数,那么这两个数一定有序)。 这图是我手画的,是归并的数组分解和归并。 我先哪一个前后已经排好序的 ...
分类:
编程语言 时间:
2019-12-18 23:40:09
阅读次数:
119
#include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<map> using namespace std; void merge(int A[], int left,int mid,int ...
分类:
编程语言 时间:
2019-12-18 21:57:11
阅读次数:
76
合并K个排序链表 "git代码地址" 题目描述 基本思路 这道题属于双链表合并的进阶。理解这道题首先需要了解有序双链表合并的解法。 已知链表有序,使用两个指针指向两个链表,逐一比较大小移动指针。代码很简单如下所示。 方法二:优先级队列 使用大小为链表长度的优先级队列,可以将优先级队列看成大小为k的小 ...
分类:
编程语言 时间:
2019-12-18 15:05:17
阅读次数:
95
常规流 又叫做文档流;在没有CSS的干预下,块级元素独占一行,宽高可设;行内元素并排显示,宽高自动。 脱离文档流 又叫做浮动流;元素在进行浮动后就是脱离文档流; 注意:浮动流在进行摆放的时候要避开常规流; 常规流在进行摆放时无视浮动流; 子级元素浮动后导致父级高度坍塌; 清除浮动 书写格式:fixe ...
分类:
其他好文 时间:
2019-12-16 22:53:37
阅读次数:
249
1、代码 import numpy as np import pandas as pd import matplotlib.pyplot as plt # 生成数据,创建 DataFrame np.random.seed(27) data = np.random.rand(7, 3) index = ...
分类:
其他好文 时间:
2019-12-15 23:47:06
阅读次数:
215
分治思想 将较大规模的问题分解为规模较小的子问题,通过解决规模较小的子问题得到较大规模问题的答案 比如 归并排序 或者 快速傅立叶变换 都运用了分治思想 $CDQ$分治 ~~既然加了前缀肯定和普通分治不同~~ $cdq$分治重要思想在于将问题分解为较小规模的子问题后,用一个子问题计算对另一个子问题的 ...
分类:
其他好文 时间:
2019-12-15 20:08:43
阅读次数:
101
在我之前的文章中:《高效排序之——堆排序,归并排序、快速排序》中初步介绍了堆排序的过程,但是认真的说,自己并没有叙述的十分清楚,这篇博客,我将持续更新,表明堆排序的一个过程和核心思想。 系列博客将按照下面三个问题展开: 什么是堆? 为何堆结构可以用来排序? 怎么利用堆结构进行排序? 堆排序的算法性能 ...
分类:
编程语言 时间:
2019-12-15 16:35:47
阅读次数:
97
def merge(a, b): c = [] h = j = 0 while j < len(a) and h < len(b): if a[j] < b[h]: c.append(a[j]) j += 1 else: c.append(b[h]) h += 1 if j == len(a): f ...
分类:
编程语言 时间:
2019-12-12 13:07:54
阅读次数:
87
1. 归并排序 算法核心思想 归并排序使用了二分法,归根到底的思想还是分而治之。拿到一个长数组,将其不停的分为左边和右边两份,然后以此递归分下去。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种稳定的排序 ...
分类:
编程语言 时间:
2019-12-09 21:53:41
阅读次数:
117
package com.rao.sort; import java.util.Arrays; /** * @author Srao * @className MergeSort * @date 2019/12/7 10:24 * @package com.rao.sort * @Descriptio ...
分类:
编程语言 时间:
2019-12-09 14:17:41
阅读次数:
104