基础算法技术
jasonxty
这个作者很懒,什么都没留下…
展开
-
正则表达式
正则表达式是由普通字符和以及特殊字符(称为“元字符”)组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。普通字符普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其它符号。非打印字符字符 描述 \cx 匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x必须是A...转载 2020-07-09 12:37:08 · 337 阅读 · 0 评论 -
Amortized analysis平摊分析——记算法导论视频总结
引言:在不知道总共有多少元素的情况下,一个哈希表应该多大?一个方法是动态表dynamic table。当数据溢出的时候double表格。将原来数据移动到新表,并释放旧表。那么如何分析每一次插入操作所需的赋值次数呢?对于这个问题最简单直观的方法是用聚集方法(aggregate analysis),即不直接分析每一次的赋值次数而分析n次插入的赋值次数。 具体分析如下: 观察可知 C=∑原创 2016-06-10 15:16:06 · 1649 阅读 · 0 评论 -
一个有趣的并行程序
在阅读《深入理解计算机系统》的时候看到一个非常巧妙的小程序。在这里分享给大家。long fun_c(unsigned long x) { long val = 0; int i; for (i = 0; i < 8; i++) { val += x & 0x0101010101010101; x >>=1; } val +=原创 2016-12-04 20:09:39 · 350 阅读 · 0 评论 -
稳定排序和不稳定排序
转自http://www.cnblogs.com/codingmylife/archive/2012/10/21/2732980.html 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试前已经记住了 数据结构书上哪些是稳定哪些是不稳定的,做起来应该可以轻松搞定。本文针对老是记不住这个或者想真转载 2017-08-07 17:27:37 · 410 阅读 · 1 评论 -
常见的排序算法C语言实现(—)
void merge(int *A, int q, int mid, int r) { int i, j, k; int lnum = mid - q + 1; int rnum = r - mid; int *L = (int *)malloc(sizeof(int)*(lnum + 1)); int *R = (int *)malloc(sizeof(in原创 2017-08-09 20:43:43 · 324 阅读 · 0 评论 -
常见排序算法及其C语言实现(二)
堆的基本操作及堆排序void siftup(int *H, int i); //关于堆,所有的位置计算都从1开始。包括n代表个数。void siftdown(int *H, int n, int i); //因此在数组操作的时候都要减一,其它位置均表示个数void makeheap(int *H, int n);void heapsort(int *A, int n);void heapde原创 2017-08-11 11:03:26 · 287 阅读 · 0 评论