分治算法:是将问题划分为一些独立的子问题,递归的求解个子问题,然后合并子问题的解而得到原问题的解。 分治算法步骤 step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题 step3 合并:将 ...
分类:
编程语言 时间:
2019-11-15 12:21:00
阅读次数:
61
小和问题在一个数组中, 每一个数左边比当前数小的数累加起来, 叫做这个数组的小和。 求一个数组的小和。例子:[1,3,4,2,5]1左边比1小的数, 没有;3左边比3小的数, 1;4左边比4小的数, 1、 3;2左边比2小的数, 1;5左边比5小的数, 1、 3、 4、 2;所以小和为1+1+3+1 ...
分类:
编程语言 时间:
2019-11-13 16:10:01
阅读次数:
81
题意 https://vjudge.net/problem/CodeForces-1251C 一个字符串,相邻的偶数奇数不能交换位置,其他相邻的情况可以交换,问字符串代表的数最小是多少。 思路 相邻的偶数、奇数位置固定,所以可以把奇数放到一起,偶数放到一起,对这两堆归并排序即可。 代码 #inclu ...
分类:
编程语言 时间:
2019-11-13 00:26:13
阅读次数:
138
1.将以下文法消除左递归,并分析符号串 i*i+i (1)E -> E+T | T E -> TE' E' -> +TE'|ε (2)T -> T*F | F T -> FT' T' -> *F|ε (3)F -> (E) | i 2.P101练习7(2)(3)文法改写,并分别求FIRST集、FOL ...
分类:
其他好文 时间:
2019-11-12 13:10:14
阅读次数:
77
归并排序 2019-11-10 11:41:59 by冲冲 1、概念 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得 ...
分类:
编程语言 时间:
2019-11-10 17:44:58
阅读次数:
80
"题目链接" 【题解】 会归并排序吧? 就把这K个链表当成是K个数字就好。 然后做归并排序。 因为归并排序的时候本来就会有这么一个过程。 [l..mid]和[mid+1..r]这两段区间都是有序的了已经。 然后再把他们俩合并起来。 合并起来之后把这个链表直接放在这个区间的最左边那个位置就好 上一级的 ...
分类:
编程语言 时间:
2019-11-09 17:40:57
阅读次数:
83
A Broken Keyboard 题意:键盘一些键坏了,按一下出俩字,给一个串,判断哪些键没坏。 题解:那肯定是至少有一段连续相同字母区间内的个数为奇数的没坏。 cpp include using namespace std; typedef long long ll; char s[505]; ...
分类:
其他好文 时间:
2019-11-09 10:03:29
阅读次数:
77
学号20182325袁源 《数据结构与面向对象程序设计》第8周学习总结 教材学习内容总结 排序、算法、栈、队列 插入排序、交换排序,选择排序、基数排序、归并排序 用时间效率、空间效率、稳定性(数值相等次序不变)衡量算法。 树:由n个结点组成的有限集合 n=0为空树 非线性结构 DNS; 一对多;有且 ...
分类:
其他好文 时间:
2019-11-04 21:27:29
阅读次数:
84
排序算法系列博客: 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 计数排序 基数排序 九大排序排序是数据结构体系中最重要的内容之一,这一块必须要非常熟练的掌握,应该做到可以立马写出每个排序的代码,有多种实现方法的必须多种都能很快写出来,当然对各个排序的性能的了解也是基础 ...
分类:
编程语言 时间:
2019-11-04 20:12:41
阅读次数:
133
教材学习内容总结 一、查找 二、排序 教材学习中的问题和解决过程 问题1:归并算法里对两个子表合并成一个更大的有序表时,两个表如果是65 90,28 100.怎么归并成一个组,如果就是把两个组归并起来,就会是65 90 28 100,并不能达到通过小的有序的数组来归并成有序的大数组的目的? 问题1解 ...
分类:
其他好文 时间:
2019-11-04 19:35:36
阅读次数:
88