归并排序其实也是分治的思想 首先归并排序跟快排一样同样需要考虑分界点 归并排序的分界点都是取中间值 其次归并排序需要递归排序左边和右边 最后一部也是最难的一部需要将分开的归并排序合二为一 #include<iostream> using namespace std; int n; const int ...
分类:
编程语言 时间:
2020-02-18 09:39:10
阅读次数:
88
https://www.runoob.com/w3cnote/radix-sort.html 算法系列 1.0 十大经典排序算法 1.1 冒泡排序 1.2 选择排序 1.3 插入排序 1.4 希尔排序 1.5 归并排序 1.6 快速排序 1.7 堆排序 1.8 计数排序 1.9 桶排序 1.10 基 ...
分类:
编程语言 时间:
2020-02-17 12:27:17
阅读次数:
57
只讲众多排序算法中的一小撮,也是最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。 ...
分类:
编程语言 时间:
2020-02-16 16:30:07
阅读次数:
77
在递归函数中用到的变量,要将它声明为局部变量,切记不能声明为全局变量。 如下面归并排序中的变量k。 1 #include<iostream> 2 3 using namespace std; 4 5 const int N = 100010; 6 7 int a[N],b[N]; 8 9 int n ...
分类:
其他好文 时间:
2020-02-16 16:26:44
阅读次数:
77
一、分治算法 分而治之,即把原问题分割成同等结构的子问题,之后针对子问题逐一解决。 插入排序更关心的是治。 归并排序更关心的是分,如何均匀分的问题。 二、分治算法应用 求逆序数 1. 什么是逆序数? 排在前面的元素比后面大。例如:序列 3 5 6 8 1 ;8排在1前面,但是8 > 1。逆序数反映的 ...
分类:
编程语言 时间:
2020-02-15 21:45:56
阅读次数:
86
归并排序分治法的一个典型且基本的应用。它的基本思想是:将对N个对象的问题转换成两次对N/2个对象的问题。归并排序减少了数据的比较次数,转而增加了数据的移动次数,使得排序速度相对较快。该算法的递推公式T(N) = 2T(N/2) + O(N)表明其算法复杂度上限为O(NlogN)。下面是其C++代码: ...
分类:
编程语言 时间:
2020-02-15 11:29:41
阅读次数:
74
ggplot2绘图系统——几何对象之条图(包括误差条图) 1.条图 格式: positon: dodge并排 fill堆叠填充标准化为1 stack堆栈 identity不做调整 jitter点扰动 前四种排列方式分别如下图: 条形含义。 自定义条图颜色。 标度函数: type的三种类型与RColo ...
分类:
编程语言 时间:
2020-02-14 16:49:37
阅读次数:
97
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。 若将两个有序表合并成一个有序表,称为二路归并。归并排序是一种 ...
分类:
编程语言 时间:
2020-02-14 16:05:57
阅读次数:
99
/* 结点i的左儿子是2i,右儿子是2i+1 那么显然这是一棵完全二叉树。 由于没有很好直接查询的办法,所以先考虑预处理一下这棵树 根据完全二叉树的性质,sum{size[i]}<=nlogn,所以直接用vector存下结点的所有孩子,自底向上对到子树距离归并排序 这样预处理完后,对于每个询问(A, ...
分类:
编程语言 时间:
2020-02-12 16:52:16
阅读次数:
94
学习自菜鸟教程,自己加以总结希望可以多多重复!!! 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 基数排序 1 //冒泡排序 O(n2) 2 public static void BubbleSort(int[] arr){ 3 int temp; 4 for(int i=0; ...
分类:
编程语言 时间:
2020-02-12 14:53:26
阅读次数:
78