![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 62
lixiwen0804
这个作者很懒,什么都没留下…
展开
-
合并排序算法
合并排序 合并排序是分治模式中的提出的一个排序方法。 分治模式在每一个递归中都有三个步骤: 分解(devide):将原问题分解成一系列子问题。 解决(Conquer):递归地解决各子问题。若子问题足够小,则直接求解。 合并(Combine):将子问题的结果合并成原问题的解。 合并排序的是通过分治法把一个无序数组分成n/2等分,这原创 2012-09-18 15:32:20 · 297 阅读 · 0 评论 -
字符串单词反转
eg: input : hello wolrd do3 do2 do1 output: do1 do2 do3 world hello 先给一个较简单的方法: 思路:1.先反转整体字符串 遍历 n/2 2.再反转单词即可 n+m*word/2 void reserve_str(char * str, int原创 2012-10-11 13:23:14 · 372 阅读 · 0 评论 -
二分算法
二分算法,一般是在已排序好的数组中提高搜索速度。 每次从middle处开始搜索。 给出两个方法解决: 递归法: int bin_search(int arr[], int val, int l, int r) { int m = (l+r)/2; if( l >= r ) return (arr[m] == val) ?原创 2012-10-11 11:29:07 · 238 阅读 · 0 评论 -
字符串去重
这个算法并不是最优的。但是在内存空间充足时效率是最高的。 eg: input: str = "aabbccassbsc"; output: str = "abcs"; 思路:1.创建一个hashmap 因为都是ASCII的字符 就简单使用 char hash[100]来用即可。 2.再创建一个够大的字符串备份。str_bakup原创 2012-10-11 11:38:02 · 689 阅读 · 0 评论 -
memcpy的实现
简单的写了一下 int _memcpy(void *dest, void *src, size_t count) { if( !dest || !src || dest == src ) return 0; char * p_d = static_cast(dest); char * p_s = static_cast(src); //内存地址出现覆盖的情况原创 2012-10-11 11:43:59 · 274 阅读 · 0 评论