本章主要是算法知识的基础讲解,介绍了循环不变式,几个简单的排序算法,递归分治算法等内容。
1、循环不变式
循环不变式主要用来说明算法的正确性,那么什么是循环不变式呢,其实就是在循环过程中,一些元素数据必须保持的一些性质,例如在插入排序中,数组为A,必须保证三个性质:
(1) 初始化:在循环开始之前,循环不变式是成立的,即:A[0]是有序的,A[1...n-1]是无序的。
(2) 保持:在循...
分类:
其他好文 时间:
2014-08-05 15:53:01
阅读次数:
220
一、概念: 在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以寄简单的直接求解,原问题的解即子问题的解的合并。 这个技巧是很多高校算法的基础,如排序算法(快速排序、归并排序)、...
分类:
其他好文 时间:
2014-08-05 15:33:29
阅读次数:
178
思路:类似归并排序算法,在合并已经有序的相邻子数组的时候,计算前面数组相对于后面数组的逆序对数,整个递归过程可以算出所有逆序对#include void merge(int A[], int front, int middle, int end, int &count){ if (front ...
分类:
其他好文 时间:
2014-08-04 21:26:48
阅读次数:
262
题目:已知有两个有序的单链表,其头指针分别为head1和head2,实现将这两个链表合并的函数:
Node* ListMerge(Node *head1,Node *head2)
这个算法很像我们排序算法中的归并排序,只能说“很像”,因为思想是一样的,但是这个与归并排序还是有区别的,区别如下:
1.归并排序是针对有序数组,而这里是有序链表;
2.归并排序排序的时间复杂度为o(nlogn),而这里的时间复杂度最坏情况下为O(m+n),最好的情况下为...
分类:
其他好文 时间:
2014-08-04 17:43:47
阅读次数:
296
链表排序:算法-归并排序public class LinkedSort { private static class ListNode { int val; ListNode next; ListNode(int x) { val...
分类:
其他好文 时间:
2014-08-04 17:09:37
阅读次数:
247
问题:有序合并两个有序链表分析:归并排序的合并部分class Solution {public: ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { ListNode *helper=new ListNode(0); ...
分类:
其他好文 时间:
2014-08-02 18:17:03
阅读次数:
170
当我们判断数据的格式是否符合规范的时候,一般会采用两种方式:
一种是if...else不断的嵌套或者if...else并排判断的方式
(这两者代表以条件正确为前提还是以条件错误为前提的)
另一种就是正则表示式。
字符串匹配给正则表达式:boolean matches(Stirng regex)
用法:String.matches(regex)
当然可以说if...els...
分类:
编程语言 时间:
2014-08-02 15:40:33
阅读次数:
264
排序算法总结(C语言版)1. 插入排序1.1 直接插入排序1.2 Shell排序2. 交换排序2.1 冒泡排序2.2 快速排序3. 选择排序3.1 直接选择排序3.2 堆排序4. 归并排序4.1 二路归并排序4.2 自然合并排序5. 分布排序5.1 基数排序1.插入排序1.1 直接插入排序...
分类:
编程语言 时间:
2014-08-01 23:04:42
阅读次数:
349
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个有序的子序列,再把有序的子序列合并为整体有序序列。
例如有两个有序表:(7,10,13,15)和(4,8,19,20),归并后得到的有序表为:(4,7,8,10,13,15,19,20)。
代码:
#include
using namespace std;
void mergearra...
分类:
其他好文 时间:
2014-08-01 16:10:31
阅读次数:
145
归并排序Merging Sort,将两个或两个以上的有序表组合成一个新表。1.基本思想假设初始化系列含有n个记录,则可以看出n个有序的子序列,每一个子序列的长为1,然后两两归并,得到【n/2】个长度为1或2的子序列,再两两归并……如此重复,知道最后得到一个长度为n的有序序列位置,这种排序方法称为2-...
分类:
其他好文 时间:
2014-08-01 15:43:41
阅读次数:
208