数据区间小算法

数据的要求是 数据范围是[80-300) (300处是开区间既不包含300) 每当数据超过此范围时将数据从起点加 500 开始下一个数据循环。 示例: [80-300) [580-800) [1080-1300) [1580-1800) ….. 求出1万之内的全部符合条件的数据。 ...

2018-07-28 10:55:56

阅读数 242

评论数 0

归并算法详解

归并算法详解 void testMergeSort(){ int length = 300; int array[length]; int j = 0; for (int i = length; i > 0; i--) { array[j++]...

2017-07-03 19:41:01

阅读数 322

评论数 0

找到数组中第几个最小的数据

找到数组中第几个最小的数据 将经典的快速排序算法做简单修改即可示例代码如下:void testFindSpecificMin(){ int arr[] = {2, 4, 3, 9, 6, 5, 7, 0, 2, 1}; //int arr[] = {4, 2, 9}; //...

2017-06-13 10:53:45

阅读数 1093

评论数 0

经典的快速排序算法

经典的快速排序算法 其中将一个数组按照枢纽元的大小将其分成左右两个部分的算法成为快速算法这个写个避免了判断相等的情况 当遇到元素与枢纽元相等时停止 目的是为了产生两个相对平衡的左右数组 void testQuickSort(){ int arr[] = {2, 4, 3, 9, 6, 5,...

2017-06-13 10:52:19

阅读数 241

评论数 0

查找大于等于左侧所有数小于等于右侧所有数

在一个int数组里查找这样的数,它大于等于左侧所有数,小于等于右侧所有数。实现void test(){ //int arr[] = {2, 5, 3, 6, 6, 9, 12, 7}; int arr[] = {2, 4, 3, 9, 6, 5, 7}; //int arr[...

2017-06-13 10:50:10

阅读数 505

评论数 0

斐波那契数列的实现

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定...

2017-06-13 10:47:42

阅读数 260

评论数 0

常见的快速算法

常见的快速算法/** 最小公约数 */ int testalgorithm1(int a, int b) { int m = a; while (m > 0) { m = a%b; a = b; b = m; } r...

2017-06-06 14:57:42

阅读数 298

评论数 0

求幂运算的不同发法之间的时间复杂度比较

求幂运算的不同发法之间的时间复杂度比较求幂运算有多种方法其中每种方法时间复杂度不尽相同详解如下:void test(){ long long result = calculatePower(2, 4); printf("the result is %lld\n"...

2017-06-06 14:53:51

阅读数 732

评论数 0

递归转化为循环

//将递归转化为for循环看例子将递归转为for循环需要求解递归关系,知道递归关系后就可以使用循环来实现。 如下示例 求解后知//f(n) = n * f(n - 1);代码详解如下:/** 求阶乘 */ int factorial(int n){ static int calculate...

2017-06-06 14:42:16

阅读数 486

评论数 0

最大子序列和详解

最大子序列和详解在求解最大子序列和时可以使用多种不同的方法 其中对于分治思想:将一个n规模的问题分为2个n/2规模的问题,再将问题的解做简单合并。其中n/2规模的问题可以继续分开处理。对于最大子序列和最大值存在3种情况1在左边2在右边3跨越中间,如果跨越中间将左侧最左部分一直相加到右侧最右部分即可...

2017-06-06 14:25:30

阅读数 356

评论数 0

素数判断详解

素数判断详解参考文章:点击打开链接对于判断素数大概有两类方法1:试除法2:筛选法还有一个米勒-拉宾检验方法此处不再展开。试除法:不断地尝试能否整除。比如要判断自然数 x 是否质数,就不断尝试小于 x 且大于1的自然数,只要有一个能整除,则 x 是合数;否则,x 是质数。筛选法:首先,2是公认最小的...

2017-06-06 13:56:26

阅读数 700

评论数 0

8位字节对齐算法

//8位字节对齐算法 void testAlign(){ for (int i = 0; i <= 10; i++) { int align = align8Bit(i); printf("the align is %d\n", a...

2017-06-06 11:00:15

阅读数 2074

评论数 0

堆排序详解

堆排序是利用堆的堆序性,对于最小堆而言,最小元素在堆顶,对于一个数组先通过将其建立成一个最小堆 然后一个一个删除其堆顶元素既实现了排序。 当堆的顶部最小元素被删除后要对堆做调整使其再次满足堆序性。由于对堆做一次调整最坏时间复杂度为O(logN),堆排序需要对堆做N-1次调整 所以堆排序最坏时间复杂...

2017-06-05 18:23:40

阅读数 381

评论数 0

插入排序与希尔排序详解

插入排序与希尔排序详解参考文章:点击打开链接1、基本思想:希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳...

2017-06-05 16:53:03

阅读数 274

评论数 0

希尔排序详解

参考文章:点击打开链接 1、基本思想: 希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割...

2017-06-05 16:44:11

阅读数 378

评论数 0

时间复杂度重要结论

时间复杂度重要的结论: 1:如果T(N) 是一个k次多项式 则T(N) = Θ(N¹²ºv^kv+^kVvv1+1Vvvv2^k) calculateCount calculateCountcalculateCountx=−b±b2−4ac‾‾‾‾‾‾‾‾√2ax=\frac{-b\pm\...

2017-06-01 11:09:06

阅读数 318

评论数 0

图像算法---磨皮算法研究汇总

http://blog.csdn.net/trent1985/article/details/50496969 写这篇博客,也是对自己这段时间关于磨皮算法内容研究做个小结。 目前,对于人脸磨皮算法,大家并不陌生,从PS到APP应用,可谓是层出不穷,这里我总结一下,具体流程如下:...

2016-08-04 21:17:33

阅读数 2257

评论数 0

关于数组的几道重要的小算法

http://www.cnblogs.com/graphics/archive/2010/08/24/1761620.html 数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考,如果您有更好的题目或者想法,欢迎留言讨论。目前有以下18道题目,如果有...

2016-06-01 23:37:28

阅读数 589

评论数 1

C语言常见字符串小算法内容

http://blog.csdn.net/hkh5730/article/details/14674183 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) 功能: 在字符串中找出连续最长的数字串,并把这个串的长...

2016-06-01 23:36:20

阅读数 487

评论数 0

字符串通过hashtable来解决问题

http://blog.chinaunix.net/uid-25434387-id-3527923.html 题目:   在字符串中找出第一个只出现一次的字符串,如输入"abaccdeff",输出'b'。 思路: 由于题目与字符串出现的次数有关,我们可以统计...

2016-06-01 23:31:44

阅读数 549

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭