算法学习
xinpo66
it职业发展顾问5年
展开
-
递归
1. 使用递归函数生成排列// output all permutations of n elements# include using namespace std;templatevoid Perm(T list[], int k, int m){// Generate all permutations of list[k:m]. int i; if原创 2011-11-24 22:09:18 · 559 阅读 · 0 评论 -
链栈基本运算(实验题3.2)
////实现链栈各种基本运算//2013-10-14 22:46//typedef int ElemType;typedef struct linknode{ ElemType data; struct linknode* next;}LiStack;void InitStack(LiStack* &s);void ClearStack(LiStack* &s);原创 2013-10-14 23:15:31 · 927 阅读 · 0 评论 -
顺序队列基本运算(实验题3.3)
////顺序队列基本运算//2013-10-14 23:27//#pragma once#define MaxSize 5typedef int ElemType;typedef struct{ ElemType elem[MaxSize]; int front,rear; //队首和队尾指针}SqQueue;void InitQueue(SqQueue*原创 2013-10-15 00:35:34 · 752 阅读 · 0 评论 -
链队列基本运算(实验题3.4)
链表实现队列原创 2013-10-16 00:08:48 · 1757 阅读 · 0 评论 -
求两个字符串最大的公共字串的长度
//2013-11-26 22:10#include #include //转化成小写void mytolower(char* strSrc){ while ( *strSrc != '\0') { if ( *strSrc >= 'A' && *strSrc <= 'Z') { *strSrc = *strSrc +32; } strSrc ++; }原创 2013-11-26 22:36:23 · 3841 阅读 · 1 评论 -
链表基本操作
链表基本操作原创 2013-11-28 23:35:54 · 693 阅读 · 0 评论 -
单链表实现内存分配监控
main.cpp#include "oj.h"#include //存放内存泄漏的地址void* g_array[1024];int main(int argc,char* argv[]){ memset(g_array,0,sizeof(g_array)); void* pAddr = MLC_Malloc(4); void* pTest[4] = {0}; pT原创 2013-12-04 23:04:43 · 1151 阅读 · 1 评论 -
十进制转换成十六进制的问题
如果是整形转换成16进制比较简单,如果是很大的一个整数呢? 比如 123456789123456789.#include #include #include #define HEX 16char s[] = "0123456789ABCDEF"; //字典//将一个整数转换成十六进制void dec2hex(int原创 2014-03-04 23:50:08 · 2241 阅读 · 0 评论 -
按单词反转字符串
并不是简单的字符串反转,而是按给定字符串里的单词将字符串倒转过来,就是说字符串里面的单词还是保持原来的顺序,这里的每个单词用空格分开。例如:Here is www.zhuxinquan.com经过反转后变为:www.zhuxinquan.com is Here如果只是简单的将所有字符串翻转的话,可以遍历字符串,将第一个字符和最后一个交换,第二个和倒数第二个交换,依次循环。其实按照单原创 2014-03-06 23:52:01 · 9092 阅读 · 3 评论 -
笔试中的算法题
#include #include //parameter:nSourceColor-32bitsRGB Color to convert//Returns:The Converted color as a 16 Bits RGB Colorunsigned short ConvertRGB888toRGB565(unsigned int nSourceColor){ unsign原创 2013-03-28 00:12:13 · 1266 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解
详细请看原文,很有收获。http://kb.cnblogs.com/page/210687/原创 2014-06-20 13:19:39 · 983 阅读 · 0 评论 -
希尔排序的C++实现
感谢博主 http://www.cnblogs.com/90zeng/p/shell_sort.html1.原理介绍希尔排序又称为缩小增量排序,由D.L.Shell在1959年提出而得名。该算法先取一个小于数据表中元素个数 n 的整数gap, 并以此作为第一个间隔,将数据分为gap个子序列,所有距离为gap的对象存放在同一个子序列中,于是数据表中的元素就被分成了gap个转载 2015-01-13 12:10:58 · 3413 阅读 · 0 评论 -
多项式相加(实验题2.7)
////polyarray.h//#pragma once#include #include ////求两个多项式相加运算,单链表实现//譬如 4x^2+3x与-4x^2+3x^2 相加结果为3x^2+3x//2013-9-26 23:09//#define MAX 20 //多项式最多项数typedef struct //存放多项式的数组类型{ float原创 2013-09-29 21:51:44 · 815 阅读 · 0 评论 -
顺序栈基本运算(实验题3.1)
////SqStack.h//顺序栈的基本运算//2013-10-12 0:06//#pragma once#define MaxSize 5typedef int ElemType;typedef struct{ ElemType elem[MaxSize]; int top; //栈指针}SqStack;void InitStack(SqStack* &原创 2013-10-12 00:28:22 · 1437 阅读 · 0 评论 -
一个排序问题
//2013-9-23 22:36//字符串排序//规则1 不区分大小写 如 BaDC 排序后是aBCD//规则2 相同字母按照原来顺序 如 aAbaC 排序后是 aAabC//规则3 非字母不参加排序 还在原来的位置 如A,bac 排序后是 A,abcstruct CINFO{ char cData; //如果是大写 则转化成小写,此时bData为false bool bDa原创 2013-09-23 23:35:41 · 644 阅读 · 0 评论 -
六种排序的C++实现
最近交的作业,测试成功,可以输出排序具体过程汗,自己先用java写的,然后才使C++可能某些地方用C++可以更简便灵活~~~多指教~~~ 总的定义: class SortNum {public: SortNum(); virtual ~SortNum(); void exchange(int& b,int& c);//交换数据 void listout(int转载 2011-11-24 22:05:53 · 607 阅读 · 0 评论 -
不大于a中随机产生n个数
问题描述:希望返回一个数组,随机产生n个数,这n个数都不大于a。,并且这n个数都不重复。 /** * 返回一个在length范围内的随机整数。随机整数个数为count. * */ public static List getRandIntegers(Integer length,Integer count){ Random rand = new Random();原创 2011-11-10 15:37:43 · 510 阅读 · 0 评论 -
分苹果问题
题目:有600个苹果10个盒子,要求把600个苹果分装到10个盒子里。如果有人来买苹果随便说出一个数,直接拿这些盒子组装一下就可以给他不用拆分盒子。请问这10个盒子应该分别装多少苹果?— — — — — — — — — — 另外用下面的程序实现出来(Java)public void countApple() { int[] box = new int[10]; int co转载 2011-12-27 17:20:55 · 978 阅读 · 0 评论 -
使用位图法判断整形数组是否存在重复
判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。位图法比较适合于这种情况,它的做法是按照集合中最大元素max创建一个长度为max+1的新数组,然后再次扫描原数组,遇到几就给新数组的第几位置上1,如遇到5就给新数组的第六个元素置1,这样下次再遇到5想置位时发现新数组的第六个元素已经是1了,这说明这次的数据肯定和以前的数据存在着转载 2012-01-18 17:14:27 · 829 阅读 · 0 评论 -
求素数
数学类的基本算法大多数属于初等数论范畴,相当大一部分与素数有直接关系,因此素数是一个很基本又很重要的内容。 我们先来看看怎么判断一个数是否素数。素数的定义为:如果一个数的正因子只有1和这个数本身,那么这个数就是素数。根据定义,我们立即能得到判断一个数N(大于1)是否素数的简单的算法:枚举2到N-1之间的整数,判断是否能整除N。该算法的 Pascal 代码。 如果n很大,那么上面原创 2012-02-02 17:03:52 · 1816 阅读 · 0 评论 -
白话经典算法系列之一 冒泡排序的三种实现 .
博主 http://blog.csdn.net/morewindows/article/details/6657829 冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=转载 2012-11-16 09:14:47 · 756 阅读 · 0 评论 -
10亿个浮点数,求出其中最大的10000个. .
http://blog.csdn.net/cnki_ok/article/details/7863810 #include "stdafx.h"#include #include #include #include // for greater<>using namespace std;int _tmain(int argc, _TCHAR* argv[]原创 2012-12-27 09:22:27 · 940 阅读 · 0 评论 -
蚁群算法的源代码 .
感谢博主 http://blog.csdn.net/scucj/article/details/4385650# 不知道现在是否还有人在研究蚁群算法?应该有吧。当初为了找C或C++源代码而不可得,在阅读了多份"杂七杂八"的代码的基础,总算写出来了。运行了三个TSP经典用例,基本符合要求。2008年3月份写的,现在贴出来大家共享一下,注释加的应该算齐全。仅仅是一份按照蚁群算法的原理写的代码,原创 2013-01-28 16:41:46 · 1347 阅读 · 3 评论 -
多项式求值
例2-8 [多项式求值] 考察多项式P (x)= n Σ cix^ii=0 如果cn≠0,则P 是一个n 维多项式。下面程序可用来计算对于给定的值x,P(x)的实际取值。假定根据f o r循环内部所执行的加和乘的次数来估算时间复杂性。可以使用维数n 作为实例特征。进入f o r循环的总次数为n,每次循环执行1次加法和2次乘法(这种操作计数不原创 2013-07-24 01:04:25 · 1399 阅读 · 0 评论 -
整数处理
//对输入整数处理//从右向左处理,有重复的舍去//比如 输入 34533446 返回6435int reverseRepeat( int n){ int arry[10] = {0}; int num = 0; int nIndex = 0; while ( n) { nIndex = n%10; if (arry[nIndex] == 0) { num原创 2013-09-24 23:18:40 · 747 阅读 · 0 评论 -
集合运算(实验题2.6)
集合运算。求集合的并,交和差运算。用有序单链表表示。#pragma once////aggregate.h//集合运算;有序单链表实现//2013-9-4 23:41//typedef int element;typedef struct LNode{ element data; LNode* next;}LinkList;void DisplayLinklist原创 2013-09-24 23:35:14 · 876 阅读 · 0 评论 -
二叉查找树(一)之 图文解析 和 C语言的实现
建议看原创,我复制到csdn上后,排版有点乱了,原创地址:https://www.cnblogs.com/skywang12345/p/3576328.html另,原创作者总结的数据结构和算法系列,还没看,先收藏:http://www.cnblogs.com/skywang12345/p/3603935.html概要 本章先对二叉树的相关理论知识进行介绍,然后给出C...转载 2018-11-07 13:47:52 · 1031 阅读 · 0 评论