算法C语言实现
hold_on2014
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
正态分布模拟试验
程序: #include #include #include int heads() { return rand() < RAND_MAX/2; } int main() { int i,j,cnt; int N; int M; //掷硬币N次,进行M次试验 //N 32 M 1000 scanf("%d%d",&N,&M); int *f = (int *)malloc原创 2014-02-21 18:55:14 · 2076 阅读 · 0 评论 -
给你一个自然数N,求[6,N]之内的所有素数中,两两之和为偶数的那些偶数
题目就这么简单。 本体首先是求素数ke'y转载 2014-09-18 20:19:18 · 933 阅读 · 0 评论 -
链表的插入排序
示例程序: #include #include typedef struct node* link; struct node { int item; link next; }; int main() { //创建两个哑节点 不存放数据 struct node heada; struct node headb; headb.next = NULL; int N; int原创 2014-03-18 14:09:33 · 545 阅读 · 0 评论 -
串的处理
首先是getch的妙用: #include "JUDGE.h" int Judge(char ch) { if( (ch>='0'&&ch='a'&&ch='A'&&ch<='Z') ) return 1; else return 0; } /********************************************* 函数名称:void Input(char *原创 2014-03-18 15:31:06 · 420 阅读 · 0 评论 -
约瑟夫问题(循环列示例)
程序: //约瑟夫问题,用循环链表 #include #include typedef struct node* link; struct node { int item; link next; }; int main() { int N; //N表示有多少人 int M; //M表示计数有多少 int i; int j; scanf("%d%d",&N,&M);原创 2014-03-18 10:30:05 · 534 阅读 · 0 评论 -
链表反转
示例程序: #include #include typedef struct node* link; struct node { int item; link next; }; //链表倒置 link reverse(link x) { //保存y的下一个选项 link t; link r = NULL; link y = x; while(y != NULL) {原创 2014-03-18 12:00:50 · 449 阅读 · 0 评论 -
连通性问题
一、慢速并查集 对于每个并集运算,要搜索所有的对象,所以速度较慢 #include #define N 10000 int main() { int i,p,q,t,id[N]; for(i = 0;i < N;i++) id[i] = i; while(scanf("%d %d",&p,&q) == 2) { if(id[p] == id[q]) continue; e原创 2014-02-19 18:51:47 · 728 阅读 · 0 评论 -
让cpu占用率曲线听你指挥
分析与解法: 看一个简单代码: while(true) { if(busy) i++; else }怎么样才能让电脑不做事情呢? 当任务管理器报告cpu使用率为0的时候,谁使用cpu?通过任务管理器可以看到,system idle process占用了cpu空闲的时间,操作系统中指出,当程序在等待用户的输入,或者是等待某些事情的发原创 2014-02-18 13:06:26 · 744 阅读 · 0 评论 -
最近点计算(二)
之前的最近点计算,是使用暴力搜索的,所需的时间让人不可接受 利用哈希算法,将单位正方形分成一个网格,设置一个链表的二维数组,每个网格正方形对应一个表,选择的网格足够精巧,与已知距离为d之内的所有点或落于统一网格内,或落于邻接网格内! 解读:就是将距离哈希化,对应的坐标落在某一个格子里面,每个格子都有一个头指针,存储映射到其内的坐标,相邻的坐标之差都是比1来得小的,所以只需要与周围的98个格子内原创 2014-02-24 13:21:55 · 646 阅读 · 0 评论 -
最近点计算
#include #include #include typedef struct point { float x; float y; }Point; float randFloat() { return 1.0*rand()/RAND_MAX; } float distance(Point a,Point b) { return sqrt((a.x - b.x)*(a.x -原创 2014-02-21 19:50:09 · 516 阅读 · 0 评论 -
判断素数的新方法
由上述原理可知,10000以下的素数也可以采取上诉方法,但是最大素数比较难算,干脆就直接列举 程序: //一个合数可以表示为几个素数的乘积 //如果是素数的倍数,那么此数就不是素数 //此方法称为素数筛选法 #include #define N 10000 int main() { int i; int j; int a[N]; for(i = 2;i < N;i++) a[i]原创 2014-02-21 16:52:09 · 549 阅读 · 0 评论
分享