归并排序是一种重要的排序方法,虽然并不能算作最优的排序方法,但排序的原理在很多情况下都能引用到,比如求逆序数。 基本原理 1.可以在O(n)时间内将两个有序序列合并为一个有序序列:若给出两个同序排列的序列,若要将两段序列合并为一段新的有序序列只需要逐次将两段序列的段首元素中关键字较大的一个取出放入新 ...
分类:
编程语言 时间:
2018-03-10 16:04:59
阅读次数:
122
算法思想将原问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 归并排序操作分解:将待排序的包含n个元素的序列分解为各含n/2个元素的子序列解决:使用归并排序递归的排序两个子序列合并:合并两个子序列以产生已排序的答案 归并排序算法时间复杂度 ...
分类:
编程语言 时间:
2018-02-05 12:49:31
阅读次数:
189
2018.02.04 补作业系列 1.合并石子 思路: 核心代码: 状态转移方程&解析:s[i]表示前i堆石子的数量总和,f[i][j]表示把第i堆石子到第j堆石子合并成一堆的最优值。 状态:AC 2.挖地雷 思路: 核心代码: 1 #include <stdio.h> 2 #include <ma ...
分类:
其他好文 时间:
2018-02-04 11:08:37
阅读次数:
174
再一次复习排序算法,总结记录一下 一 先看两个不同的递归 func3(5) 输出5,4,3,2,1 func4(5) 输出 1,2,3,4,5 要理解这两个递归的不同,func3是递归进去的时候进行打印,所以是5,4,3,2,1 . func4是递归出来的时候打印, 二 插入排序 将一个记录插入到已 ...
分类:
编程语言 时间:
2018-02-01 20:43:48
阅读次数:
187
重读算法导论之算法基础 插入排序 ? 对于少量数据的一种有效算法。原理: 1. 整个过程中将数组中的元素分为两部分,已排序部分A和未排序部分B 2. 插入过程中,从未排序部分B取一个值插入已排序的部分A 3. 插入的过程采用的方式为: 依次从A中下标最大的元素开始和B中取出的元素进行对比,如果此时该 ...
分类:
编程语言 时间:
2018-01-29 21:35:19
阅读次数:
278
题目描述 有两个长度都是N的序列A和B,在A和B中各取一个数相加可以得到N^2个和,求这N^2个和中最小的N个。 输入输出格式 输入格式: 第一行一个正整数N; 第二行N个整数Ai,满足Ai<=Ai+1且Ai<=10^9; 第三行N个整数Bi, 满足Bi<=Bi+1且Bi<=10^9. 【数据规模】 ...
分类:
其他好文 时间:
2018-01-23 22:08:05
阅读次数:
179
前端框架层出不穷,不过万变不离其宗,就是从MVC过渡到MVVM。从数据映射到DOM,angular中用的是watcher对象,vue是观察者模式,react就是state了。 React通过管理状态实现对组件的管理,通过this.state()方法更新state。当this.setState()被调 ...
分类:
其他好文 时间:
2018-01-19 20:23:42
阅读次数:
219
分组查询:分组查询就是按某一列分组,相同的列合并,得到结果可能他少于总记录 使用group by分组查询:按什么分(年级、姓氏、地址、年龄)年级 分组查询语法:Select * from <表名>Where 条件Group by 列名 Group by后的列名必须在*里面出现 Demo:Select ...
分类:
其他好文 时间:
2018-01-14 16:46:19
阅读次数:
153
归并排序法,这里介绍二路归并排序法,其他原理类似,只是更加复杂。 归并排序(Merge Sort)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。 归并排序的具体做法: 二路归并 归并排序是建立在归并操作上的一种有效的排序算 ...
分类:
编程语言 时间:
2018-01-06 18:03:53
阅读次数:
280
归并排序(Merge Sort)是建立在归并操作上的一种有效的排序算法,它将已有序的子序列合并,得到完全有序的序列。 归并排序的速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。 请看下述代码: public class Demo1 { public static v ...
分类:
编程语言 时间:
2017-12-19 01:21:13
阅读次数:
182