算法
文章平均质量分 74
generalharry
这个作者很懒,什么都没留下…
展开
-
字符串匹配的KMP算法
原文地址:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt转载 2013-08-30 00:23:27 · 737 阅读 · 0 评论 -
数据结构中常用的排序算法
排序常用的算法有:插入算法(直接插入算法、折半插入算法、希尔算法)、选择算法(简单选择算法、堆排序算法)、快速算法(冒泡排序、快速排序算法) 以下程序给出了各种算法的实现,其接口为void sort(int *array,int len),每个文件实现一个算法, 最后和main.c文件编译实现。 1、直接插入算法: //direct_insert_sort.c void sort(in原创 2013-05-21 11:27:15 · 7652 阅读 · 0 评论 -
分治法与归并排序
#include #include /* **归并排序的主要思想:分治法 Divide and Conquer **1 Divide: 将数组array[p,q),从中间分开,分成两个子数组sub1[p,r),sub2[r,q); **2 Conquer: 递归调用merge_sort,直到p+1==q,只有一个元素; **3 Combine: 对两个有序的子数组[p,r),[r,q)原创 2013-09-08 10:29:14 · 1386 阅读 · 0 评论 -
二叉搜索树的搜索、排序、插入、删除
#include #include #define MAXLINE 5 using namespace std; struct Node { int data; struct Node * lchild; struct Node * rchild; }; void insertBinaryTree(struct Node *root,int data) { str原创 2013-09-13 15:50:24 · 928 阅读 · 0 评论 -
分治法与快速排序算法
/* **分治法与快速排序算法。数组array[p,q] **1、Divide: 选中数组最左边的起始元素,所有小于起始元素的值都复制到存放起始元素的左边, ** 所有大于起始元素的值都存放到起始元素的右边,并返回起始元素所在的位置r。 **2、Conquer: 对[p,r)以及[r+1,q)分别递归调用快速排序算法,直到p==q,不在划分,直接返回。 ** **3、Combine原创 2013-09-08 15:46:53 · 1158 阅读 · 0 评论