算法
文章平均质量分 60
xiaofei2010
艰苦的奋斗
展开
-
迭代贪心算法c++源码实现
//迭代贪心算法的实现//test2.cpp#include using namespace std;int i=0,n=11,k=0;int b[10];void GreedyActivitySeletor(int* s,int *f){ for(int m=i+1;m<=n;m++) if (s[m]>=f[i]) { k++; b[k]=m;//b[原创 2012-04-24 11:41:51 · 2304 阅读 · 0 评论 -
1061:Rightmost Digit(代码超级简洁)
Problem DescriptionGiven a positive integer N, you should output the most right digit of N^N.InputThe input contains several test cases. The first line of the input is a single integer T which原创 2012-05-17 22:27:48 · 624 阅读 · 0 评论 -
算法导论学习方法
先了解算法思想,再了解算法执行过程,再记住代码,然后做题,最后再来回顾导引和证明,即先知其然,再知其所以然。转载 2012-07-28 09:52:23 · 1011 阅读 · 0 评论 -
插入排序伪代码及实现
方法一//插入排序实现#include using namespace std;void insert_sort(int A[],unsigned int first,unsigned int last)//一般是first为零,last为n - 1{ unsigned int i,j; int temp; for (i = first + 1;i <= last;i++)原创 2012-12-06 15:00:22 · 6367 阅读 · 0 评论 -
C++中的大数运算
1.大数相加思路:建立两个长度为N的整型数组分别存放两个大数,和一个长度为N+1的数组存放它们得和。建立一个字符数组存放每次输入的大数(此时数组中存放的实际为字符,要将它们转化为int型后再传递给整型数组)//实现两个大数相加#include using namespace std;#define N 1000//将c[n]中字符串转化成数字存入arr[n]voi原创 2013-03-22 12:36:32 · 1509 阅读 · 0 评论 -
广度优先遍历二叉树实现
/*广度优先遍历二叉树实现*/#include #include using namespace std;typedef struct BTN{ int data; BTN *pL; BTN *pR;}BinaryTreeNode;deque NodeDeque;//广度优先遍历二叉树.void GDBL(BinaryTreeNode原创 2013-09-30 16:42:07 · 1074 阅读 · 2 评论 -
快速排序的实现(快排)
/*快速排序的实现*/#include using namespace std;void swap(int &a,int &b){ int temp = a; a = b; b = temp;}int partition(int arr[],int left,int right) { int key = arr[right]; //以数组中最后原创 2013-09-25 11:34:22 · 987 阅读 · 0 评论 -
二叉树的非递归遍历
转自:http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html#2767155二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历转载 2013-09-28 17:11:34 · 642 阅读 · 0 评论 -
冒泡排序
//冒泡排序算法。#include using namespace std;void bubbleSort(int arr[],int n){ for(int i = 0;i < n;++i) { int temp = 0; for(int j = n-1;j > i;--j) { if(arr[j] < arr[j-1]) { temp = arr[原创 2013-09-28 16:26:03 · 722 阅读 · 0 评论 -
3.1 字符串移位包含的问题——编程之美
a. 问题: 给定两个字符串s1和s2,要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含。例如,给定s1 = "AABCD",s2 = "CDAA",返回true;给定s1 = "ABCD",s2 = "ACBD",返回false。b. 分析: 在s1中从头至尾查找与s2中第一个元素相等的元素,找不到,则标志位mark为0,返回为false;原创 2012-06-09 10:27:40 · 1396 阅读 · 0 评论 -
1425: sort hash表排序
给你n个整数,请按从大到小的顺序输出其中前m大的数。每组测试数据有两行,第一行有两个数n,m(0输入: 5 3 3 -35 92 213 -644 输出: 213 92 3 //******以下为输入元素无重复情况时源码******#include using namespace std;int hash[1000001];int main(原创 2012-03-01 22:50:55 · 878 阅读 · 0 评论 -
The Archive of Interesting Code(有各种算法,牛!!!)
The Archive of Interesting CodeThe Archive of Interesting Code is an (ambitious) effort on my part to research, intuit, and code up every interesting algorithm and data structureever invented. I转载 2012-04-24 13:58:23 · 1340 阅读 · 0 评论 -
递归贪心算法c++源码实现
//递归贪心算法的实现//test1.cpp#include using namespace std;void RecursiveActivitySeletor(int* s,int *f,int i,const int n){ int m=i+1; while(m<=n&&s[m]<f[i]) m+=1; if (m<=n) { cout<<"a["<<m<<"]"<原创 2012-04-24 11:06:09 · 2708 阅读 · 0 评论 -
编程之美 - 寻找数组中的最大值和最小值
根据书中第四种思路得到下面的源码:#include using namespace std;struct mytype{//定义返回类型 int x,y; mytype(int m,int n) : x(m),y(n){}};mytype Search(int arr[],int b,int e){ int maxV,minV; if (e - b <= 1) {原创 2012-05-10 11:01:01 · 568 阅读 · 0 评论 -
统计长方形对角线穿过的小正方形的个数(摘自《计算机程序设计经典题解》)
//串长方形统计#include #include using namespace std;int main(){ int n = 1,t,a1 = 0,b1 = 0,a2,b2; //a1、b1分别表示长、宽方向上已统计过的整数 float a,b,x,le,ca,cb; //a、b为长方形两条边 cout << "输入长方形的长和宽:" << endl; cin >>转载 2012-05-13 21:20:05 · 3411 阅读 · 0 评论 -
回溯法实现排列(摘自《计算机程序设计经典题解》)
//回溯法实现排列//应用回溯法产生排列A(m,n)。设置一维数组a,a[i]在1—n中取值,出现数字相同时返回。//当i<m时,还未取m个数,i增1后a[i]=1继续;当i=m时,输出一个A(n,m)的排列,并设置变量s统计A(n,m)排列的个数。//当a[i]<n时,a[i]增1继续。当a[i]=n时,回溯或调整,知道i=0时结束。//回溯实现A(n,m)代码如下:#include转载 2012-05-13 16:58:07 · 834 阅读 · 0 评论 -
分治法实现归并排序
//分治法实现归并排序#include using namespace std;#define SIZE 10void merge(int array[],int first,int mid,int last) //合并{ int new_arr[SIZE],i,j,k=first; memset(new_arr,0,SIZE); for (i = first,原创 2012-05-14 18:36:14 · 3180 阅读 · 0 评论 -
1108: 最小公倍数
Problem Description给定两个正整数,计算这两个数的最小公倍数。 Input输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数. Output对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。 Sample Input10 14 Sample Output70#include using na原创 2012-05-17 18:35:03 · 838 阅读 · 0 评论 -
2035: 人见人爱A^B
求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”Input输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1Output对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。Sample Input2 312 66789 100000 0Sample Output89841原创 2012-05-17 22:51:51 · 607 阅读 · 0 评论 -
1021: Fibonacci Again
Problem Description:There are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).InputInput consists of a sequence of lines, each containing an integer n. (n原创 2012-03-02 14:10:15 · 805 阅读 · 1 评论 -
计算unsigned int型数据二进制形式中1出现的次数
int GetCount(unsigned int num){ /*在这里实现功能*/ unsigned int cnt = 0; while(num) { cnt += num&0x01; num >>= 1; } return cnt++;}原创 2013-12-16 16:17:50 · 1030 阅读 · 1 评论