![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基本算法
文章平均质量分 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 · 455 阅读 · 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 · 205 阅读 · 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 · 237 阅读 · 0 评论 -
Paxos - 分布式表决算法
原文链接:http://en.wikipedia.org/wiki/Paxos_(computer_science) Paxos (computer science) From Wikipedia, the free encyclopedia Paxos is a family of protocols for solving consensu转载 2012-03-13 22:05:06 · 1697 阅读 · 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 · 699 阅读 · 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 · 148 阅读 · 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 · 173 阅读 · 0 评论 -
返回日期是星期几
#include #include #define true 1 #define false 0 int 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 · 310 阅读 · 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 · 150 阅读 · 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 · 661 阅读 · 0 评论 -
LCS算法
最长公共字串LCS算法的实现 #include #include #include #define MAX 100 #define UPLEFT 1 #define UP 2 #define LEFT 3 char s1[MAX] = {'a','b','c','d','\0'}; int s1len = 4; char s2[MAX] = {'c','x','b','y'原创 2011-10-21 17:43:38 · 330 阅读 · 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 · 163 阅读 · 0 评论 -
公司常规面试题
1. 6字型链表找交点。 1步+2步,断开环,形成Y字形链表 求Y字形链表的长度,求交点 2. 数组内元素两两相同,只有一个不相同的元素 所有元素异或 3.两个int型数组,在第一个数组中删除第二个数组的元素中所有的元素 起码n2是可以的 4.malloc和new的原创 2011-09-26 12:39:24 · 172 阅读 · 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 · 353 阅读 · 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 · 131 阅读 · 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 · 761 阅读 · 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 · 166 阅读 · 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 · 183 阅读 · 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 · 224 阅读 · 0 评论