k均值算法:得到第K个大的数算法实现方法

第种算法是最容易想到就是利用快速排序思想将个分成以某个数X为轴左边所有数都比X小而右边数都比X大但我快速排序区别是在这个算法中只考虑X边而不是两边都考虑 如果X位置是i,那么要得到第k个数如果k=i, 那么这个数定在i左边否则在i右边 源码如下: # stdio.h # stdlib.h _random( min, max) { (min + ()... [阅读全文]

算法及其实现:希尔排序(shellsort)算法实现

希尔排序(shellsort)又叫增量递减(diminishing increment)排序是由D.L. Shell发明这个算法是通过个逐渐减小增量使个逐渐趋近于有序从而达到排序目 假设有个 data[16] = {...} 首先将这个增量设为16 / 2 = 8这样就将这个分成了8个子它们索引是0, 8 1, 9 2, 10等等 对... [阅读全文]

回溯算法讲解:装箱问题算法实现讲解

有一个箱子容量为V(正整数,0≤V≤20000),同时有n个物品(0≤n≤30),每个物品有一个体积(正整数)。要求从n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 [样例]输入: 24 一个整数,表示箱子容量 6 一个整数,表示有n个物品 8 接下来n行,分别表示这n个物品的各自体积。 3 12 7 9 7输出: 0 一个整数,表示箱子剩余空间 算法分析:本题是经典问题:0-1背包的特... [阅读全文]

算法及其实现:反转算法的实现方法

我们一起通过实例来学习一下吧,看下面这个例子:把一个32位整数按位反转,即第1位转到第32位,第2位转到第31位,依次下去。一牛人写的算法如下: unsignedintbit_reverse(unsignedintn) { n=((n1)&0x55555555)|((n1)&0xaaaaaaaa); n=((n2)&0x33333333)|((n2)&0xcccccccc); n=((n4)&0... [阅读全文]

启发式算法:启发式算法实现图着

启发式算法是指种依赖于人想法,采用试探性逐步挖求解思路方法.以下使用贪心算法实现了图着色,参数为输入文件和节点数,其中,输入文件以矩阵方式存储图,非0表示两节点可达/相临.这种算法并不总能得到最优解,只保证得到近似最优解. 其实,顶点编号思路方法决定了这种算法结果.至少存在种编号思路方法使这个贪心算法能得到最优解./*$ID: icymoon@NKU* Just... [阅读全文]

螺旋方阵:螺旋方阵算法实现

packagetopcoder; /* *下面是个5*5阶螺旋方阵.试编程打印出此形式n*n(n10)阶方阵(顺时针方向旋进). *12345 *161718196 *152425207 *142322218 *131211109 */ publicscrewSquare { publicvoid(Stringargs){ (args.length0){ .ou... [阅读全文]

分形算法:分形算法及C++实现

1.分形介绍 我们人类生活世界是个极其复杂世界例如喧闹都市生活、变幻莫测股市变化、复杂生命现象、蜿蜒曲折海岸线、坑坑洼洼地面等等都表现了客观世界特别丰富现象基于传统欧几里得几何学各门自然科学总是把研究对象想象成个个规则形体而我们生活世界竟如此不规则和支离破碎和欧几里得几何图形相比拥有完全区别层次复杂性分形几何则提供了种描述这种不规则复杂现象中秩序和结构新思路方法... [阅读全文]

crc算法及c语言实现:利用C++实现哈夫曼算法

我想每个计算机专业学生或多或少都接触过哈夫曼编码数据结构中老问题了大体就是给出些和这些出现频率让你为这些设计个 2进制编码要求频率最高编码最短解决思路方法是构造棵哈夫曼树( 2叉树)其基本思路是每次从这些中挑出两个频率最低然后构造个新结点使新结点左右孩子指针分别指向那两个节点我想这个大家都很清楚了我就不多说了主要讲下这次我用c实现时遇到问题首先我定义了个哈夫曼树... [阅读全文]

alphablend:MMX版本的Alpha Blend算法实现

作者:老赫  这次我们的目标是: 超越普通的CPU玩家,用CPU的母语来优化程序!   实验器材:VC++ 4.2以上的编译器或C++ Builder 4.0以上编译器  MMX技术到现在来说可以算是基本大众化了,目前大多数个人电脑都应该能支持它。P55C,K6,PII,PIII...按照惯例,Intel公司将在以后的x86版本永远支持它。  要了解MMX指... [阅读全文]
1 共1条 分1页