1. 问题描写叙述 有两个有序的整型数组a和b(没有反复元素),他们的长度分别为lenA和lenB,求出他们的共同元素。 比如:a = 0,1,3,5,7,9,11。b = 2,3,4,7,11; 它们的交集为{3。7,11}。 2. 方法思路 求交集的方法有非常多种,但数组的长度会影响算法的效率。 ...
分类:
编程语言 时间:
2017-06-18 19:26:38
阅读次数:
159
归并排序:归并排序是建立在归并操作上的一种有效的排序算法,该算法是採用分治法(Divide and Conquer)的一个很典型的应用。将已有序的子序列合并,得到全然有序的序列。即先使每一个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 数据结构的学习过程中。我们常常 ...
分类:
编程语言 时间:
2017-06-07 10:14:47
阅读次数:
187
算法是程序的灵魂,一个优秀的前端工程师对算法也是要有所了解的。 排序算法 1. 冒泡排序 2. 快速排序 3. 二路归并 将两个按值有序序列合并成一个按值有序序列,则称之为二路归并排序 字符串操作 1. 判断回文字符串 2. 翻转字符串 思路1:反向遍历字符串 思路2:转化成array操作 3. 生 ...
分类:
编程语言 时间:
2017-03-02 19:15:06
阅读次数:
244
【BZOJ4278】[ONTAK2015]Tasowanie Description 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T。 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T。 Input 第一行包含一个正整 ...
分类:
编程语言 时间:
2017-01-11 09:06:44
阅读次数:
233
https://www.luogu.org/problem/show?pid=U4566 显然的逆序对,以前只是嘴巴ac,这次终于打了出来。 逆序对其实就是冒泡排序的排序次数。。。。但是一般的排序时间复杂度为O(n^2),于是都会想到归并排序。。。 一、二路归并 已知两个有序数组,将其归并为一个有序 ...
分类:
编程语言 时间:
2016-11-17 10:12:59
阅读次数:
258
#include<iostream>#include<typeinfo>#define N 100 using namespace std;void MergeSort(int *R,int low,int mid,int high){ //用分治法对R[low..high]进行二路归并排序 int ...
分类:
编程语言 时间:
2016-09-24 21:46:20
阅读次数:
175
1.稳定性比较 插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的 选择排序、希尔排序、快速排序、堆排序是不稳定的 2.时间复杂性比较 平均情况 最好情况 最坏情况 归并排序 O(nlogn) O(nlogn) O(nlogn) 基数排序 O(n) O(n) O(n) 快速排序 O( ...
分类:
编程语言 时间:
2016-09-18 01:14:18
阅读次数:
241
一.什么是归并排序 归并排序就是将多个有序的数据段合成一个有序的数据段,如果参与合并的只有两个有序的数据段,则称为二路归并。与快速排序和堆排序相比,其最大的特点是一种稳定的算法,算法的平均时间复杂度O(nlog2n)。 二.归并排序的基本思路 (1).对于一个原始的待排序表,可以将R[1]到R[n] ...
分类:
编程语言 时间:
2016-09-10 19:13:22
阅读次数:
327