基本算法
文章平均质量分 67
lilybear101
这个作者很懒,什么都没留下…
展开
-
读者和写者问题 - 进程同步
出处:http://dantvt.spaces.live.com读者-写者问题写者优先与公平竞争多进程对共享资源互斥访问及进程同步的经典问题设有一文件F,多个并发读进程和写进程都要访问,要求:(1)读写互斥(2)写写互斥(3)允许多个读进程同时访问采用记录型信号量机制解决较常见的写法:semaphore fmutex=1, rdcntmutex=1;//fmutex--> access to file; rdcntmutex --> access to readcountint readco转载 2010-11-25 13:32:00 · 461 阅读 · 0 评论 -
全排列有序输出
// permNext.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include #include int num=0;int n;int *datas;inline void SimpleSwap(int & a, int & b){ int temp = a; a = b; b = temp;}inlin原创 2012-05-06 15:21:49 · 212 阅读 · 0 评论 -
SortedLinkedList
问题描述:建立一个固定长度的队列,每次插入一个数据的时候,踢掉最早进入数组的数据,每次插入一个数据的时候,对这个队列求中位数。main.cpp#include #include "SortedLinkedList.h"int main(int argc, char *argv[]){ init(); float input; printf("-----I原创 2012-04-24 18:31:19 · 245 阅读 · 0 评论 -
Paxos - 分布式表决算法
原文链接:http://en.wikipedia.org/wiki/Paxos_(computer_science)Paxos (computer science)From Wikipedia, the free encyclopediaPaxos is a family of protocols for solving consensu转载 2012-03-13 22:05:06 · 1706 阅读 · 0 评论 -
牛顿迭代开根算法
public class Test extends Thread { private static float a = 121; public static void main(String[] args){ float x0 = 1; float x1 = (float) (x0+(a/x0-x0)*0.5); float diff = x1 - x0; while原创 2011-08-11 15:04:32 · 708 阅读 · 0 评论 -
因式分解
#include #include unsigned int primeTable[10001] = {0};int factorization(unsigned int n);unsigned int getNextPrime(){ unsigned int pos = primeTable[0]; unsigned int i = 0; unsigned int n = 0原创 2011-10-21 18:21:34 · 156 阅读 · 0 评论 -
堆排序
#include void qSort(int* a, int head, int tail){ int low,high,tmp; low = head; high = tail; tmp = a[low]; if(low>=high) return; while(low<high) { while(a[high]>=tmp && low<high) high--;原创 2011-10-21 18:07:08 · 180 阅读 · 0 评论 -
返回日期是星期几
#include #include #define true 1#define false 0int normalmonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};int leapmonth[12]={31,29,31,30,31,30,31,31,30,31,30,31};const char * week[7]={"Monday"原创 2011-10-21 17:59:22 · 318 阅读 · 0 评论 -
质数
判断是否是素数#include #include int isPrime(unsigned int n){ unsigned int i=0; if(n == 1) return -1; if(n == 2) return 1; if(n%2 == 0) return -1; if(n == 3) return 1; if(n%3 == 0) return -1;原创 2011-10-21 18:16:57 · 157 阅读 · 0 评论 -
GCD和LCM
最大公约数和最小公倍数#include #include unsigned __int64 GCD(unsigned __int64 a,unsigned __int64 b){ unsigned __int64 temp; if(a<b) { temp = a; a = b; b = temp; } temp = a%b; while(temp!=0)原创 2011-10-21 18:10:09 · 669 阅读 · 0 评论 -
LCS算法
最长公共字串LCS算法的实现#include #include #include #define MAX 100#define UPLEFT 1#define UP 2#define LEFT 3char s1[MAX] = {'a','b','c','d','\0'};int s1len = 4;char s2[MAX] = {'c','x','b','y'原创 2011-10-21 17:43:38 · 336 阅读 · 0 评论 -
KMP算法
KMP算法实现#include #include void buildNext(int* next, char* s2, int len2){ int i=0; int j=-1; next[0] = -1; while(i<len2-1) { if(j==-1 || s2[i] == s2[j]) { i++; j++; if(s2[原创 2011-10-21 17:40:10 · 172 阅读 · 0 评论 -
公司常规面试题
1. 6字型链表找交点。1步+2步,断开环,形成Y字形链表求Y字形链表的长度,求交点2. 数组内元素两两相同,只有一个不相同的元素所有元素异或3.两个int型数组,在第一个数组中删除第二个数组的元素中所有的元素起码n2是可以的4.malloc和new的原创 2011-09-26 12:39:24 · 181 阅读 · 0 评论 -
圆的公切线算法实现
/** * 返回外切线方程 求切线的k: k^2(deltaR^2 - deltaX^2) + 2k*deltaX*deltaY + deltaR^2 - * deltaY^2 = 0 */ public static LineSegment[] getExtern原创 2011-08-09 10:09:53 · 360 阅读 · 0 评论 -
二分搜索
int BinSearch(int k){ int rtn = -1; int low=1; int high=in[0]; int mid; while(low<=high) { mid = (low+high)/2; if(in[mid]==k)原创 2011-07-16 10:56:56 · 138 阅读 · 0 评论 -
Hanoi 汉诺塔
返回移动次数 hanoi 片数 1#include #include int main(){ int n; int i; //unsigned __int64 hanoi=0xffffffffffffffff; unsigned __int64 hanoi=1;原创 2011-07-16 11:01:36 · 767 阅读 · 0 评论 -
快排
//快排算法void qsort(int* & array, int left, int right){ if (left>=right) return; int ileft = left; int iright = right; int temp原创 2010-07-12 11:24:00 · 172 阅读 · 0 评论 -
杨辉三角
<br />public class YanghuiDelta { public static void main(String[] args) { if(args.length<=0){ PrintHelp(); return; } if(args[0].equals("-n")) PrintYanghuiDelta(args[1]); else if(args[0].equals("-help")) PrintHelp();原创 2011-04-28 18:41:00 · 191 阅读 · 0 评论 -
6字型链表环型判断代码
//链表数据类型typedef struct node { int val; struct node* pNext;}NODE,*PNODE; //主函数void Circle_Verification(){ int len_link = 0; PNODE pHead; PNODE pMeet = NULL;原创 2010-07-12 11:04:00 · 232 阅读 · 0 评论